문제
다장조는 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 중 하나를 출력한다.
풀이
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int [] input =new int[8];
String temp="";
for(int i=0;i<8;i++) {
input[i]=sc.nextInt();
}
for(int j=0;j<7;j++) {
if(input[j]==input[j+1]-1) {
temp="ascending";
}
else if(input[j]==input[j+1]+1) {
temp="descending";
}
else {
temp="mixed";
break;
}
}
System.out.println(temp);
}
}
input값에 8개의 정수값을 입력 받아야 하므로 8개의 길이로 선언하고, 문자열 temp를 선언한다.
이후 8개의 임의의 정수값을 input에 입력받고, 만약 오름차순이라면 if문에 따라 ascending가 return되고 반대로 내림차순이라면 else if 문의 descending가 출력된다. 하지만 중간에 조건을 마족하지 못한다면 바로 else문으로 빠져 break로 루프를 빠지게 된다.
ㅇㅅㅇ
반응형
'Algorithms > BOJ[Java]' 카테고리의 다른 글
[Bakjoon/8958번] OX퀴즈 [Java] (0) | 2019.11.28 |
---|---|
[Bakjoon/1546번] 평균 [Java] (0) | 2019.11.28 |
[Bakjoon/3052번] 나머지 [Java] (0) | 2019.11.28 |
[Bakjoon/2562번] 최댓값 [Java] (0) | 2019.11.26 |
[Bakjoon/10818번] 최소,최대 [Java] (0) | 2019.11.26 |