백준 algorithm
백준 2920 - 음계
cosmohoo
2019. 11. 4. 21:41
반응형
배열을 이용해서 오름차순인지, 내림차순인지, 섞여 있는 배열인지 확인하는 문제이다.
본인은 오름차순과 내림차순을 판별하는 함수를 만들고 두 함수 모두 false일 경우, mixed로 판별하였다.
아래와 같은 방법말고, 입력을 받으며 다음에 오는 숫자가 오름차순인지 내림차순인지 판별하여 해당 배열을 판별하는 방법 또한 있다. 그 방법이 훨씬 더 효율적이다.
#include <iostream>
using namespace std;
bool ascending(int arr[])
{
int cnt=0;
for (int i = 0; i < 7; i++)
{
if (arr[i] + 1 == arr[i + 1]) cnt++;
}
if (cnt == 7)return true;
else return false;
}
bool descending(int arr[])
{
int cnt=0;
for (int i = 0; i < 7; i++)
{
if (arr[i] - 1 == arr[i + 1]) cnt++;
}
if (cnt == 7)return true;
else return false;
}
int main(void)
{
int arr[10];
for (int i = 0; i < 8; i++)
{
cin >> arr[i];
}
if(ascending(arr))
cout << "ascending" << '\n';
else if (descending(arr))
{
cout << "descending" << '\n';
}
else cout << "mixed" << '\n';
return 0;
}
반응형