문제
다장조는 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 2 3 4 5 6 7 8
예제 출력
ascending
예제 입력 2
8 7 6 5 4 3 2 1
예제 출력 2
descending
예제 입력 3
8 1 7 2 6 3 5 4
예제 출력 3
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 | import java.util.*; public class Main { public static void main(String[] args) { Scanner sca = new Scanner(System.in); int line[] = new int[8]; for(int i=0; i<8; i++){ line[i] = sca.nextInt(); } int temp =0; for(int i=0; i<7; i++){ if(i==0){ temp = line[i]- line[i+1]; }else if(temp != line[i]-line[i+1]){ System.out.println("mixed"); break; }else if(i==6){ if(line[0]==1){ System.out.println("ascending"); }else{ System.out.println("descending"); } } } } } | cs |
[풀이]
-숫자 8개를 입력받아 배열에 저장한다.
-처음 인덱스의 배열값에서 두번째 인덱스의 배열값을 빼서 그값을 temp에 저장하여 초기화한다.
-입력받은 배열이 등차수열을 이룬다면 mixed 가 아닌것이므로
-temp에 저장한 값이 for문을 도는동안 i 인덱스값에서 i+1인덱스값을 뺀 값과 다르면 등차수열이 아니므로 mixed를 출력하고 for문을 벗어난다.
-마지막 인덱스까지 검사를 마치게 된다면 등차수열을 이루는 것이므로 그것이 내림차순인지 오름차순인지 판별한다.
-배열의 첫번째 인덱스를 검사하여 그수가 1이면 asce 아니면 desc를 출력한다.
'백준알고리즘' 카테고리의 다른 글
[7단계 문자열 사용하기]11654번 (0) | 2018.01.17 |
---|---|
[6단계 1차원 배열 사용하기]10039번 (0) | 2018.01.12 |
[6단계 1차원 배열 사용하기]8958번 (0) | 2018.01.09 |
[6단계 1차원 배열 사용하기]2577번 (0) | 2018.01.05 |
[6단계 1차원 배열 사용하기]1152 (0) | 2018.01.04 |