
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
int main(int argc, const char * argv[]) {
int n; vector<int> v;
cin >> n; int temp;
for(int i=0; i<n; i++){
cin >> temp;
v.push_back(temp);
}
stack<int> s;
int success = 1;
for(int i=0; i<n; i++){
if(v[i] == success) success++;
else s.push(v[i]);
while(!s.empty()){
if(s.top()==success){success++; s.pop();}
else break;
}
}
if(s.empty()) cout << "Nice"; else cout << "Sad";
}
스택을 이용하여 쉽게 풀 수 있다.