Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

UpDown Dev Story

[백준 - 2920번] 음계 본문

Algorithm

[백준 - 2920번] 음계

updown 2022. 12. 16. 09:58

문제

 

2920번: 음계

다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8

www.acmicpc.net

풀이과정

  • 8개의 숫자가 주어진다 이 숫자를 보고 아래의 조건을 대입하여 출력하면 되는 문제다
    • 순서대로 증가되면 ascending
    • 순서대로 증감되면 descending
    • 뒤죽박죽이면 mixed

코드

package baekjoon;

import java.util.Scanner;

public class Problem2920 {

//    8개의 숫자가 주어진다 이 숫자를 보고 아래의 조건을 대입하여 출력하면 되는 문제다
//    순서대로 증가되면 ascending
//    순서대로 증감되면 descending
//    뒤죽박죽이면 mixed
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 8개의 값을 배열에 담는다
        int[] inputArr = new int[8];
        for (int i = 0; i < 8; i++) {
            inputArr[i] = sc.nextInt();
        }

        boolean isAscending = true; // 초기 asc 값을 초기화한다
        boolean isDescending = true; // 초기 asc 값을 초기화한다
        for (int j = 0; j < inputArr.length - 1; j++) { // 0 ~ 7까지 배열을 돈다(8까지 돌면 +1 했을때 Exception 발생)
            if (inputArr[j] < inputArr[j + 1]) { // 현재 node의 값과 다음 node의 값을 비교해서 다음 node가 크면
                isDescending = false; // 내림차순이 아니다
            } else if (inputArr[j] > inputArr[j + 1]) { // 현재 node의 값과 다음 node의 값을 비교해서 현재 node가 크면
                isAscending = false; // 오름차순이 아니다
            }
        }

        // 위 기준값을 가지고 출력하는 로직
        if (isAscending) { // 오름차순이면
            System.out.println("ascending");
        } else if (isDescending) { // 내림차순이면
            System.out.println("descending");
        } else { // 오름차순도 내림차순도 아니면
            System.out.println("mixed");
        }
    }
}

'Algorithm' 카테고리의 다른 글

팩토리얼  (0) 2021.07.07
선택 정렬  (0) 2021.07.07
교육과정 설계 (Queue)  (0) 2021.07.07
공주 구하기 (Queue)  (0) 2021.07.06
후위식 연산 (Stack)  (0) 2021.07.06
Comments