본문 바로가기
알고리즘/BOJ(C++)

[BOJ 알고리즘] 2920 "음계"

by frog 2021. 5. 18.

[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

댓글