Dev538
[백준] [JAVA/2920번] 음계 본문
문제
다장조는 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 중 하나를 출력한다.
풀이 설명
8개의 음표(입력값) 을 배열에 저장하여 배열 크기만큼 반복하여 확인한다.
조건이 배열에 저장된 0번째값이 1(asc)이거나, 8(desc) 이어야하고 하고, 순번대로 값이 일정한지, 아닌경우에는 mixed 이다.
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
32
33
34
35
36
37
38
39
40
41
42
|
import java.util.StringTokenizer;
public class baekjoon_2920 {
public static void main(String[] args){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int array[] = new int[8];
String result = "";
boolean flag = true;
try {
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i = 0; 8 > i; i++ ){
array[i] = Integer.parseInt(st.nextToken());
if(flag == true && array[0] == 1 && array[i] == i + 1){
result = "ascending";
flag = true;
}else if(flag == true && array[0] == 8 && array[i] == 8 - i){
result = "descending";
flag = true;
}else {
result = "mixed";
flag = false;
}
}
}catch(IOException e){
e.printStackTrace();
}finally{
}
}
}
|
'Algorithm' 카테고리의 다른 글
[백준] [JAVA/3052번] 나머지 (0) | 2019.12.29 |
---|---|
[백준] [JAVA/2577번] 숫자의 개수 (0) | 2019.12.29 |
[백준] [JAVA/2562번] 최댓값 (0) | 2019.12.29 |
[백준] [JAVA/10818번] 최소, 최대 (0) | 2019.12.29 |
[백준] [JAVA/1110번] 더하기 사이클 (0) | 2019.12.26 |
Comments