jyamethyst21 님의 블로그

백준 10845번- '큐' (PYTHON 풀이) 본문

CODING 💻

백준 10845번- '큐' (PYTHON 풀이)

jyamethyst21 2025. 11. 25. 01:15

문제:

 

예전에 큐 문제 풀었던 거랑 같은 유형 같은데 무슨 차이인지 모르겠다. 어쨌든 못 푼 문제에서 없애고 싶어서 한번 풀어본 유형이지만 다시 풀어보았다! 

스택과 큐 그리고 덱에 대해선 이전에 말한 바 있으니 자세한 설명을 생략하겠다. 개념 자체를 모르더라도 문제의 형식에 맞춰서 구현만 하면 되니 이해가 안된 상태에서 진행해도 무관할 것 같다.

 

풀이:

import sys
N = int(sys.stdin.readline())
qu = [] 

for i in range(N):
    put = input().split()
    if put[0] == 'push':
        qu.append(int(put[1]))
    elif put[0] == 'pop':
        if len(qu) == 0:
            print(-1)
        else:
            p = qu.pop(0)
            print(p)
    elif put[0] == 'size':
        print(len(qu))
    elif put[0] == 'empty':
        if len(qu) == 0:
            print(1)
        else:
            print(0)
    elif put[0] == 'front':
        if len(qu) == 0:
            print(-1)
        else:
            print(qu[0])
    elif put[0] == 'back':
        if len(qu) == 0:
            print(-1)
        else:
            print(qu[-1])

위 코드대로 풀 경우, 이번 문제에서 주의할 점은 sys 라이브러리를 import 해야만 풀 수 있다는 점이다.

처음에 sys 없이 풀었다가 시간 초과가 나서 sys를 추가했는데 좀 오래 걸리긴 했지만 풀렸다. 비슷한 유형인데 시간초과가 나니 다르게 풀어보라는 의미로 새로 나온 문제인가 했는데 그건 아닌 것 같다.

어쨌든 이번 문제는 단순히 문제 설명에 맞춰 함수를 잘만 활용하면 if문을 통해 쉽게 풀 수 있고, 코드 역시 설명 그대로 만든 거라 자세한 설명은 생략하겠다.