본문 바로가기
코드업(codeup)/C

[코드업(codeup)/C]코드업(codeup) 2008 : 오름차순? 내림차순? 2 C언어

by starfish22 2021. 12. 3.
728x90

▶문제 : 오름차순? 내림차순? 2 (codeup.kr)

 

오름차순? 내림차순? 2

수의 순서가 오름차순인 경우 '오름차순', 내림차순인 경우 '내림차순', 둘 다 아닐 경우 '섞임'을 출력한다.

codeup.kr

 

▶코드 작성

#include <stdio.h>

int main()
{
    int n, arr[100];

    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }

    if (arr[0] == arr[n - 1])//맨앞, 맨끝 수가 같을 때 섞임
    {
        printf("섞임");
        return 1;
    }

    if (arr[0] < arr[n - 1])//오름차순 추측
    {
        for (int i = 0; i < n - 1; i++)
        {
            if (arr[i] > arr[i + 1])//자신의 다음 번호 수가 자신보다 작을 때
            {
                printf("섞임");
                return 1;
            }
        }
        printf("오름차순");
    }
    else if (arr[0] > arr[n - 1])//내림차순 추측
    {
        for (int i = 0; i < n - 1; i++)
        {
            if (arr[i] < arr[i + 1])//자신의 다음 번호 수가 자신보다 클 때
            {
                printf("섞임");
                return 1;
            }
        }
        printf("내림차순");
    }

    return 0;
}

 

▶해석

양끝 수가 같을 때 섞임으로 출력하고 if문으로 오름차순인지 내림차순인지 미리 추측하기 위해 양끝 수를 비교하였다. 그 후 오름차순이라면 자신이 자신의 앞에 있는 수보다 작아야 하는데 그 반대라면 바로 섞임으로 출력하게 하였고 내림차순도 마찬가지로 자신이 자신의 앞에 있는 수보다 커야 하는데 그 반대라면 섞임을 출력하였다.

728x90

댓글