본문 바로가기

백준

2920)음계

https://www.acmicpc.net/problem/2920


1~8까지 오름차순인 경우 ascending을 출력하고 내림차순인 경우 desending을 출력한다.


이도 저도 아니면 mixed를 출력한다.


한수 문제를 풀 때 아이디어를 쓰면 될 것같다..


한수는 각 자리수가 등차수열을 이루는 수이다.


이를 좀 더 쉽게 구하기 위해 한 자리씩 읽어 이전 자릿수끼리 차이와 현재 자릿수끼리 차이를 비교했다.


한 번이라도 달라지면 등차수열이 아니다.


연속된 자연수를 오름 차순으로 정렬했을 때 An-An+1 = -1이다.


내림 차순으로 정렬했을 때 An-An+1 = 1이다.


비교 과정 중 한 번이라도 달라지면 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
#include<stdio.h>
#define NUM 8
 
int main() {
    int pattern[NUM];
    int d0, d1;
 
    for(int i=0; i< NUM;i++scanf("%d",&pattern[i]);
    
    d0 = pattern[0- pattern[1];
    for (int i = 1; i < NUM-1;i++) {
        d1 = pattern[i] - pattern[i + 1];
        if (d0 != d1) break;
    }
 
    if ((d0 == d1)&& d0 == -1) {
        printf("ascending\n");
    }
    else if ((d0 == d1) && d0 == 1) {
        printf("descending\n");
    }
    else {
        printf("mixed\n");
    }
 
    return 0;
}
cs


'백준' 카테고리의 다른 글

5622)다이얼  (0) 2019.01.16
1316)그룹 단어 체커  (0) 2019.01.15
8958)OX 퀴즈  (0) 2019.01.15
1065)한수  (0) 2019.01.14
1012)유기농 배추  (0) 2019.01.13