ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 2920 - 음계
    백준 algorithm 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;
    }

    '백준 algorithm' 카테고리의 다른 글

    백준 10172 - 개  (0) 2019.11.17
    백준 15596 - 정수 N개의 합  (0) 2019.11.10
    백준 15649 - N과 M(1)  (0) 2019.11.04
    백준 1427 - 소트인사이드  (0) 2019.11.03
    백준 10872 - 팩토리얼  (0) 2019.10.30

    댓글

Designed by Who.