문제
- stack과 비슷한 문제이다.
- Queue를 구현한다.
해설 및 코드
Python의 경우 Queue 내장 함수가 존재하지만 정의된 함수가 매우 적다.
따라서 list로 구현하였다.
stack과 대부분 동일하지만, Queue의 pop은 제일 앞을 가져온다.
import sys
N = int(sys.stdin.readline().rstrip())
que = []
for _ in range(N):
cmd = list(sys.stdin.readline().rstrip().split())
if cmd[0] == "push":
que.append(cmd[1])
elif cmd[0] == "pop":
# 제일 앞을 pop 한다.
print(que.pop(0) if len(que) else -1)
elif cmd[0] == "size":
print(len(que))
elif cmd[0] == "empty":
print(0 if len(que) else 1)
elif cmd[0] == "front":
print(que[0] if len(que) else -1)
elif cmd[0] == "back":
print(que[-1] if len(que) else -1)
Python 문법 정리
- 내장 함수 Queue 사용 시 문법
from queue import Queue
que = Queue(MaxSize) # MaxSize의 길이를 가진 Queue 생성
que.qsize() # queue에 담긴 객체 개수 반환
que.put(0) # queue에 객체 담음
que.get() # queue 객체 반환
- list.pop( index ): 인덱스 위치의 객체 반환 후 삭제
'IT > 알고리즘' 카테고리의 다른 글
[백준] 보물 1026.python (0) | 2021.02.09 |
---|---|
[백준] 에디터 1406.python (0) | 2021.02.07 |
[백준] 덱 10866.python (0) | 2021.02.07 |
[백준] 스택 10828.python (0) | 2021.02.03 |
[백준] 수찾기 1920.python (0) | 2021.01.28 |