알고리즘/백준

[C++] 백준 3052번 - 음계

Esunn 2022. 7. 26. 22:47

 

 

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

숫자의 배열에 따라서 출력을 다르게 하는 문제

 

#include <iostream>
using namespace std;

int main() {
	int num[8];
	int chk = 0;
	int k = 0;

	for (int i = 0; i < 8; i++) {
		cin >> num[i]; 
		if (num[i] == i+1) chk++;
	}
	if (chk == 8) {
		cout << "ascending";
		return 0;
	}
	else {
		chk = 0;
		for (int j = 8; j > 0; j--) {
			if (num[k] == j) chk++;
			k++;
		}
		if (chk == 8) {
			cout << "descending";
			return 0;
		}
		else {
			cout << "mixed";
			return 0;
		}
	}
}

 

단순하게 8칸 배열을 만들고 for문을 통해서 특정 조건을 먼저 확인하는 식으로 풀었다.


이 문제는 어떤 과정으로 푸는지가 중요한 문제인 것 같다.

나는 조금 비효율적으로 풀이를 했는데 창의적은 풀이가 정말 많았다.

 

이 글이 정말 잘 푼 것 같았다.

https://aorica.tistory.com/38

 

[백준] 2920번 음계 C/C++ 문제 풀이 1차원배열

문제 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascendi

aorica.tistory.com