[백준/파이썬] 12789번

민정·2023년 8월 8일
0

[백준/파이썬]

목록 보기
160/245
post-thumbnail

📍백준 12789번 문제

https://www.acmicpc.net/problem/12789

코드

import sys
from collections import deque

input = sys.stdin.readline


num = int(input())

student = deque(list(map(int, input().split())))
stack = []

order = 1

while student:
    if student and order != student[0]:
        stack.append(student.popleft())
    elif student and order == student[0]:
        order += 1
        student.popleft()
    while stack and order == stack[-1]:
        stack.pop()
        order += 1
print("Nice" if not stack else "Sad")

풀이

  • 처음에 서있는/주어진 줄(student)은 큐를 이용하고 한 명씩만 설 수 있는 공간은 스택을 이용하면 된다.
    그래서 주어진 숫자와 학생 번호가 일치한다면 pop 또는 popleft를 이용하면 된다.
profile
パㅔバ6ㅇr 덤벼ㄹΓ :-0

0개의 댓글