[BOJ 알고리즘] 2920 "음계"
● 문제
- 다장조는 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인지 판별하는 프로그램을 작성하시오.
● 소스코드
#include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{
int num[9] = {};
for(int i=0; i<9; i++)
{
scanf("%d",&num[i]);
}
int type = 0;
for(int i=0; i<8; i++)
{
if(1+i!=num[i])
{
break;
}
if(i == 7 && num[i] == 8)
{
type = 1;
}
}
for(int i=0; i<8; i++)
{
if(8-i!=num[i])
{
break;
}
if(i == 7 && num[i] == 1)
{
type = 2;
}
}
if(type == 1)
{
printf("ascending\n");
}
else if(type == 2)
{
printf("descending\n");
}
else
{
printf("mixed\n");
}
return 0;
}
● 풀이
- 특별한 알고리즘은 없다.
- ascending인지 descending인지 확인한 후 출력한다.
- ascending도 descending도 아니라면 mixed를 출력한다.
* www.acmicpc.net/problem/2920
2920번: 음계
다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8
www.acmicpc.net
'알고리즘 > BOJ(C++)' 카테고리의 다른 글
[BOJ 알고리즘] 8958 "OX퀴즈" (0) | 2021.05.18 |
---|---|
[BOJ 알고리즘] 3052 "나머지" (0) | 2021.05.18 |
[BOJ 알고리즘] 2908 "상수" (0) | 2021.05.18 |
[BOJ 알고리즘] 2884 "알람 시계" (0) | 2021.05.18 |
[BOJ 알고리즘] 2753 "윤년" (0) | 2021.05.17 |
댓글