Level: Level 1
풀이: 미참고
Language: C++
프로그램: Visual Studio 2017
문제설명
다장조는 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까지 숫자가 한 번씩 등장한다.
입력 예
1 2 3 4 5 6 7 8 |
출력
첫째 줄에 ascending, descending, mixed 중 하나를 출력한다.
출력 예
ascending |
풀이
-
1차원 배열을 이용하여 미리 값을 저장해놓았다.
-
if문을 사용하여 입력받은 문자열이 정의해놓은 배열과 같은지 검사한다.
Code
#include <iostream>
using namespace std;
int main() {
int a[8] = { 1,2,3,4,5,6,7,8 }; //ascending
int d[8] = { 8,7,6,5,4,3,2,1 }; //descending
int an = 0; //마지막에 맞는지 확인하기 위해서 추가
int dn= 0;
//8개 숫자 입력받기
int number[8];
for (int i = 0; i < 8; i++)
cin >> number[i];
//입력받은 문자열이 어떤 것인지 판별하는 반복문
for (int i = 0; i < 8; i++) {
if (number[i] == a[i])
an++;
else if (number[i] == d[i])
dn++;
else break;
}
if (an == 8)
cout << "ascending";
else if (dn == 8)
cout << "descending";
else cout << "mixed";
}
ScreenShot
'Programming > Programming 풀이' 카테고리의 다른 글
[Baekjoon] 2178번 미로 탐색(C++) (434) | 2021.02.03 |
---|---|
[Baekjoon] 2675번 문자열 반복(C++) (326) | 2021.01.27 |
[Baekjoon] 1152번 단어의 개수(C++) (456) | 2021.01.25 |
[Baekjoon] 14659번 한조서열정리하고옴ㅋㅋ(C++) (455) | 2021.01.19 |
[Baekjoon] 11497번 통나무 건너뛰기(C++) (408) | 2021.01.18 |