
아래 백준 로고를 클릭하면 해당 문제로 이동합니다 😀
처음 입력받은 학생 순서 리스트랑 스택을 구분해서 보자.
학생은 1번부터 간식을 받으러 가야하므로 target은 1부터 시작하고, 학생의 맨 앞부터 읽어오면서 target과 같다면 리스트에서 빼주고, target += 1을 해준다.
만약 같지 않다면 스택에 넣어주고, 그 후 스택을 돌면서 스택의 가장 위(마지막 요소)가 target과 같다면 스택에서 빼주고 target += 1을 해주면 된다.
마지막에 스택이 비어있으면 Nice, 스택이 비어있지 않다면 Sad를 출력하면 된다.
N = int(input())
s = []
target = 1
students = list(map(int, input().split()))
while students:
if students[0] == target:
students.pop(0)
target += 1
else:
s.append(students.pop(0))
while s:
if s[-1] == target:
s.pop()
target += 1
else:
break
print('Nice' if not s else 'Sad')
