신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

 

※ 문제 풀이 코드는 맨 아래에 있습니다.

 

문제

다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다.

1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed 이다.

연주한 순서가 주어졌을 때, 이것이 ascending인지, descending인지, 아니면 mixed인지 판별하는 프로그램을 작성하시오

 

입력

첫째 줄에 8개 숫자가 주어진다. 이 숫자는 문제 설명에서 설명한 음이며, 1부터 8까지 숫자가 한 번씩 등장한다.

 

출력

첫째 줄에 ascending, descending, mixed 중 하나를 출력한다.

 

예제입력1

1 2 3 4 5 6 7 8

 

예제출력1

ascending

예제입력2

8 7 6 5 4 3 2 1

 

예제출력2

descending

 

예제입력3

8 1 7 2 6 3 5 4

 

예제출력3

mixed

 

코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Ex2920 {

    public static void main(String[] args) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        try {
            String[] input = br.readLine().trim().split(" ");
            int[] data = new int[input.length];
            
            int i;
            for(i=0; i<input.length; i++) {
                data[i] = Integer.parseInt(input[i]);
            }
            int result = 0;
            for(i=1; i<input.length-1; i++) {
                if(data[0] == 1) {
                    if(data[i]+1 == data[i+1]) {
                        result = 0;
                    }else {
                        result = 2;
                        break;
                    }
                }else if(data[0] == 8) {
                    if(data[i]-1 == data[i+1]) {
                        result = 1;
                    }else {
                        result = 2;
                        break;
                    }
                }else {
                    result = 2;
                    break;
                }
            }
            
            if(result == 0) {
                bw.write("ascending");
            }else if(result == 1) {
                bw.write("descending");
            }else {
                bw.write("mixed");
            }
            
            
            bw.flush();
            br.close();
            bw.close();
        } catch (Exception e) {
            // TODO: handle exception
        }
    }
}​

 

결과

 

 직접 문제 풀고 돌려본 뒤, 채점까지 마친 후에 작성한 글입니다.

더 좋은 방법이 있다면, 댓글로 알려주시면 감사하겠습니다 :)

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기