안녕하세요. 오늘은 산을 찾아볼 거예요.

문제

https://www.acmicpc.net/problem/21965

아이디어

인접한 두 수가 같지 않고 arr[i-1]>arr[i]<arr[i+1]인 i만 없으면 됩니다.

소스코드

코드를 입력하세요

#define ll long long
using namespace std;

int main(void)
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    ll N, i, arr[101010] = { 0 };

    cin >> N;
    for (i = 1; i <= N; i++) cin >> arr[i];

    for (i = 2; i <= N - 1; i++)
    {
        if (arr[i - 1] == arr[i] || arr[i] == arr[i + 1])
        {
            cout << "NO";
            return 0;
        }
        if (arr[i - 1] > arr[i] && arr[i] < arr[i + 1])
        {
            cout << "NO";
            return 0;
        }
    }
    cout << "YES";
}


감사합니다.

0개의 댓글