반응형
백준 18258번 큐 2
파이썬 / 자료구조 / 큐
[문제]
[과정]
간편한 deque 라이브러리를 사용하여 구현했다.
deque 생성
from collections import deque
q = deque()
스택 구현
q.append() - 오른쪽 끝에 항목 추가
q.pop() - 오른쪽 끝에 항목 가져오면서 삭제
큐 구현
q.appendleft() - 왼쪽에서 값 입력
q.pop() - 오른쪽에서 값 출력(삭제)
q.appendleft - 왼쪽에 값 입력
q. popleft - 왼쪽의 값 출력(삭제)
리스트처럼 사용
q.insert(n,k) - n번째 항목에 k추가
q.remove(n) - n항목 삭제
[소스코드]
# 큐 2
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
q = deque()
for _ in range(n):
cmd = list(map(str, input().split()))
if cmd[0] == 'push':
q.append(cmd[1])
elif cmd[0] == 'pop':
if not q:
print(-1)
else:
print(q.popleft())
elif cmd[0] == 'size':
print(len(q))
elif cmd[0] == 'empty':
if not q:
print(1)
else:
print(0)
elif cmd[0] == 'front':
if not q:
print(-1)
else:
print(q[0])
elif cmd[0] == 'back':
if not q:
print(-1)
else:
print(q[-1])
[통과]
반응형
'코딩테스트 문제풀이 > beakjoon' 카테고리의 다른 글
[백준] 2346 풍선 터뜨리기 (0) | 2021.09.27 |
---|---|
[백준] 21608 상어 초등학교 (0) | 2021.08.31 |
[백준] 1158 요세푸스 문제 (0) | 2021.08.20 |
[백준] 14502 연구소 (0) | 2021.08.16 |
[백준] 21921 블로그 (0) | 2021.08.16 |
댓글