728x90
문제
다장조는 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. 소스 코드
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 | #include<iostream> int main() { int input[8]; for(int t=0;t<8;t++){ std::cin>>input[t]; } int type; //ascending은 1, descending은 2, 아니면 3을 넣어주자. //ascending if(input[0]==1){ type =1; //우선 1을 넣어준다. for(int t=0;t<8;t++){ if(input[t]!= t+1) { type = 3; //예외가 생기면 3을 넣어주고 반복을 끝낸다. break; } } ; } //descending (위와 동일하다) else if(input[0]==8){ type =2; for(int t=0;t<8;t++){ if(input[t]!= 8-t) { type = 3; break; } } } else type==3; //type에 따라 출력을 결정짓는다. if(type==1) std::cout<<"ascending\n"; else if(type==2) std::cout<<"descending\n"; else if(type==3) std::cout<<"mixed\n"; } | cs |
3. 문제 출처
https://www.acmicpc.net/problem/2920
4. 참고
'<백준> > |c++| easy' 카테고리의 다른 글
백준 2675 - 문자열 반복 (0) | 2019.02.16 |
---|---|
백준 10809 - 알파벳 찾기(ascii 변환) (0) | 2019.02.10 |
백준 8958 - OX퀴즈 (0) | 2019.02.10 |
백준 2577 - 숫자의 개수(문자열 길이 반환) (0) | 2019.02.10 |
백준 1152 - 단어의 개수(문자열 토크나이징) (0) | 2019.02.10 |