신규 블로그를 만들었습니다!
※ 문제 풀이 코드는 맨 아래에 있습니다.
문제
다장조는 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
}
}
}
결과
※ 직접 문제 풀고 돌려본 뒤, 채점까지 마친 후에 작성한 글입니다.
더 좋은 방법이 있다면, 댓글로 알려주시면 감사하겠습니다 :)
'Algorithm > 백준 온라인 저지' 카테고리의 다른 글
백준/2675번 :: 문자열 반복(Java 구현) 알고리즘 (0) | 2018.07.01 |
---|---|
백준/10039번 :: 평균 점수 (Java 구현) 알고리즘 (4) | 2018.07.01 |
백준/8958번 :: OX 퀴즈 (Java 구현) 알고리즘 (4) | 2018.07.01 |
백준/2577번 :: 숫자의 개수 (Java 구현) 알고리즘 (4) | 2018.07.01 |
백준/2448번 :: 별찍기 - 11 (Java 구현) - Recursive 재귀함수 (4) | 2018.06.29 |
최근댓글