[Algorithm] BAEKJOON 12789 - 도키도키 간식드리미 C++

E0u0n·2024년 3월 22일
0

Algorithm

목록 보기
3/4
post-thumbnail

[BAEKJOON] 12789번 도키도키 간식드리미

문제 ...(생략) 사람들은 현재 1열로 줄을 서있고, 맨 앞의 사람만 이동이 가능하다. 인규는 번호표 순서대로만 통과할 수 있는 라인을 만들어 두었다. 이 라인과 대기열의 맨 앞 사람 사이에는 한 사람씩 1열이 들어갈 수 있는 공간이 있다. 현재 대기열의 사람들은 이 공간으로 올 수 있지만 반대는 불가능하다. 승환이를 도와 프로그램을 완성하라.

입력 입력의 첫째 줄에는 현재 승환이의 앞에 서 있는 학생들의 수 N(1 ≤ N ≤ 1,000,자연수)이 주어진다.
다음 줄에는 승환이 앞에 서있는 모든 학생들의 번호표(1,2,...,N) 순서가 앞에서부터 뒤 순서로 주어진다.

출력 승환이가 무사히 간식을 받을 수 있으면 "Nice"(따옴표는 제외)를 출력하고 그렇지 않다면 "Sad"(따옴표는 제외)를 출력한다.

Input

5
5 4 1 3 2

Output

Nice

Code

#include <iostream>
#include <stack>

using namespace std;

int main(){
    ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);

    int N, temp, cnt=1;
    cin>>N;

    stack<int> bottom;
    
    while(N--){
        cin>>temp;

        if(cnt==temp) cnt++;
        else bottom.push(temp);
        while (!bottom.empty() && bottom.top()==cnt)
        {
            bottom.pop();
            cnt++;
        }
    }

    if(bottom.empty()) cout<<"Nice";
    else cout<<"Sad";

    return 0;
}
profile
이세계 개발자입니다.

0개의 댓글