알고리즘

백준 : : 2920번 음계 - C++ 풀이

green333 2021. 12. 30. 18:42
728x90
SMALL
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
#include <iostream>

int CheckMellody(int arr[], int len){
    int i;
 //1 : des, 2: des, -1: mix
    if(arr[i] > arr[i+1]){ // 7 6 5 
        for(i = 0; i < len - 1 ; i++){
            if(arr[i] < arr[i+1]) return -1;
        }
        return 1;
    }
       
    else// 1 2 3
        for(i = 0; i < len - 1; i++){
            if(arr[i] > arr[i+1]){
                return -1;
            }
        }
        return 2;
    }
}
int main(){
    int input[8];
    int result;

    for(int i = 0; i < 8; i++){
        std::cin >> input[i];
    }

    result = CheckMellody(input, sizeof(input)/sizeof(int));

    if(result == 1std::cout << "descending" << std::endl;
    else if(result == 2std::cout << "ascending" << std::endl;
    else std::cout << "mixed" << std::endl;
    return 0;
}
cs


ascending인지 descending인지 mix인지 판단하는 문제!
이전 array 값과 비교해서 ascending or descending이 아닌 순간 mix로 판단하여 return

 

LIST