[백준] 25297번: 순열 정렬

짜장범벅·2022년 8월 7일
0

백준

목록 보기
23/26

1 문제

주어진 조건에 대한 구현 문제

2 Idea

조건을 잘 구현하면 된다...

3 Code

#include <iostream>
#include <vector>



bool determineDecrease(const std::vector<int>& v, const int N){
    bool answer = true;
    const int criteria = (N+1)/2;
    int current = v[0]<criteria?v[0]:N+1-v[0];

    for (int i=1; i<N; ++i){
        if ((current <= v[i]) && (current <= N+1-v[i])){
            if (v[i] < criteria){
                current = v[i];
            }
            else{
                current = N+1-v[i];
            }
        }
        else if (current <= v[i]){
            current = v[i];
        }
        else if (current <= N+1-v[i]){
            current = N+1-v[i];
        }
        else{
            return false;
        }
    }

    return answer;
}

int main(){
    int T = 0;
    std::cin >> T;

    for (int i=0; i<T; ++i){
        int N = 0;
        std::cin >> N;

        std::vector<int> v(N, 0);
        for (int i=0; i<N; ++i){
            std::cin >> v[i];
        }

        if (determineDecrease(v, N)){
            std::cout << "YES" << std::endl;
        }
        else{
            std::cout << "NO" << std::endl;
        }
    }

    return 0;
}
profile
큰일날 사람

0개의 댓글