본문 바로가기
Online-Judge/Baekjoon

[Baekjoon] C++ 2920번 음계

by nyangzzi 2021. 5. 31.
반응형

https://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

 

 

 

input을 배열로 차례대로 입력 받는다.

array<int, 8> arr = {};

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

 

입력 받은 값이 뒤의 값과 비교하여 1이 작은 지 혹은 큰 지 확인한 뒤 해당 개수를 카운트 한다.

int up = 1;
int down = 1;

for (int i = 0; i < 7; i++) {

	if (arr[i] == arr[i + 1] - 1) {
		up++;
	}
	else if (arr[i] == arr[i + 1] + 1) {
		down++;
	}
}

 

 

만약 모두 작다면 ascending

모두 크다면 descending

둘 다 아니라면 mixed 하다.

if (up == 8) {	//앞 수가 뒷 수보다 모두 1만큼 작다면
	cout << "ascending\n";
}
else if (down == 8) {	//앞 수가 뒷 수보다 모두 1만큼 크다면
	cout << "descending\n";
}
else {
	cout << "mixed\n";
}

 


[전체 코드]

#include <iostream>
#include <array>
using namespace std;

int main() {
	
	int up = 1;
	int down = 1;
	array<int, 8> arr = {};

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

	for (int i = 0; i < 7; i++) {

		if (arr[i] == arr[i + 1] - 1) {
			up++;
		}
		else if (arr[i] == arr[i + 1] + 1) {
			down++;
		}
	}

	if (up == 8) {
		cout << "ascending\n";
	}
	else if (down == 8) {
		cout << "descending\n";
	}
	else {
		cout << "mixed\n";
	}
}

 

반응형

댓글