본문 바로가기

백준/실버

[백준 11536번] 줄 세우기 (C++)

문제링크 : https://www.acmicpc.net/problem/11536

 

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = INT_MAX;

int N;
string s;
vector<string>v;
vector<string>v1;
vector<string>v2;

int main()
{
    ios_base::sync_with_stdio(0); 
	cin.tie(0);

    cin >> N;

    for(int i=0; i<N; i++) 
    {
        cin >> s;
        v.push_back(s);
        v1.push_back(s);
        v2.push_back(s);
    }

    sort(v1.begin(), v1.end()); //오름차순
    sort(v2.begin(), v2.end(), greater<>()); //내림차순

    if(v == v1) cout << "INCREASING";
    else if(v == v2) cout << "DECREASING";
    else cout << "NEITHER";

    return 0;
}

 

기본 문자열을 저장하는 벡터를 저장해두고,

해당 벡터를 기준으로 오름차순 정렬, 해당 벡터를 기준으로 내림차순 정렬을 해준다.

 

이후 원본 벡터와 정렬한 벡터들의 값을 비교해서 오름차순과 같다면 INCREASING을, 내림차순과 같다면 DECREASING을, 둘 모두 아니라면 NEITHER를 출력하게 된다.