본문 바로가기
데일리 프로그래밍

[백준][10845] 큐 (파이썬)

by Loper Lee 2020. 12. 30.

제목 - 문제보러가기

문제 설명

큐에서 사용하는 6가지 명령어에 대한 동작을 정의하는것 (push, pop, size, empty, front, back)

입력

15
push 1
push 2
front
back
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
front

출력

1
2
2
0
1
2
-1
0
1
-1
0
3

풀이

큐의 6가지 동작을 만들어주는 단순한 문제다.
큐 구조체의 특징(FIFO)를 알고있으면 손쉽게 만들 수 있다.
다만 input()을 이용하면 시간초과가 나오는 문제다.
sys라이브러리를 활용해주면 시간초과없이 성공적으로 해결할 수 있다.

코드

import sys
stack = []
for _ in range(int(sys.stdin.readline())):
    order = sys.stdin.readline().split()
    if order[0] == "push": stack.append(order[1])
    elif order[0] == "pop": print(stack and stack.pop(0) or -1)
    elif order[0] == "size": print(len(stack))
    elif order[0] == "empty": print(not stack and 1 or 0)
    elif order[0] == "front": print(len(stack) <= 0 and -1 or stack[0])
    elif order[0] == "back": print(len(stack) <= 0 and -1 or stack[len(stack)-1])