[C++] 백준 2920 음계
반응형
1. 서론
옛날에 풀었던 문젠데 그때는 C로 풀어서 C++로 다시 풀었다. 간단한데 이상하게 풀기 딱 좋은 문제... 조심!
2. 문제 풀이
다장조의 음계 순서대로 1~8인 경우엔 ascending, 8~1인 경우엔 descending, 숫자가 섞인 경우엔 mixed라고 출력하는 문제이다.
처음에는 또 어렵게 생각해서 조건을 괴상하게 줬다가 간결하게 고쳤다.
말 그대로 반복문을 돌리면서 1~8인지 체크, 8~1인지를 변수 두 개로 체크한다.
그리고 각자 변수에 해당하면 문자열이 뜨도록 했다.
3. 코드 설명
#include <iostream>
using namespace std;
int main()
{
int v[8];
int i, a = 1, d = 1;
for(i = 0; i < 8; i++)
cin >> v[i];
for (i = 0; i < 8; i++)
{
if (v[i] != i + 1)
a = 0;
if (v[i] != 8 - i)
d = 0;
}
if (a == 1) cout << "ascending" << endl;
else if (d == 1) cout << "descending" << endl;
else cout << "mixed" << endl;
}
변수 a,d가 참인 상태로 처음에 시작한다.
배열을 입력받고 한 바퀴 돌리면서 1~8이 아닌 경우, 8~1이 아닌 경우 각자 변수를 0으로 바꿔준다.
바뀐 값을 가지고 출력한다.
반응형
'Algorithm' 카테고리의 다른 글
[C++] 백준 1874 스택 수열 (0) | 2021.02.09 |
---|---|
[C++] 백준 2798 블랙잭 (0) | 2021.02.08 |
[C++] 프로그래머스 주식가격 (0) | 2021.02.06 |
[C++] 프로그래머스 기능개발 (0) | 2021.02.05 |
[C++] 프로그래머스 다리를 지나는 트럭 (0) | 2021.02.04 |