반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
push X: 정수 X를 큐에 넣는 연산
pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력 (비어있으면 -1 출력)
size: 큐에 들어있는 정수의 개수를 출력
empty: 큐가 비어있으면 1, 아니면 0을 출력
front: 큐의 가장 앞에 있는 정수를 출력 (비어있으면 -1 출력)
back: 큐의 가장 뒤에 있는 정수를 출력 (비어있으면 -1 출력)
큐를 구현하는 문제입니다.
2022.02.10 - [Algorithm] - [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조
(큐에 대한 설명은 위 링크를 참고해주십시오.)
3. 코드
from collections import deque
import sys
input = sys.stdin.readline
N = int(input())
stack = deque([])
for _ in range(N):
command = input().rstrip()
#push
if command[:4] == 'push':
stack.append(int(command[5:]))
#pop
elif command == 'pop':
print(-1 if len(stack)==0 else stack.popleft())
#size
elif command == 'size':
print(len(stack))
#empty
elif command == 'empty':
print(1 if len(stack)==0 else 0)
#front
elif command == 'front':
print(-1 if len(stack)==0 else stack[0])
#back
elif command == 'back':
print(-1 if len(stack)==0 else stack[-1])
#print(command)
#print(stack)
큐에 대한 개념만 있으면 쉬운 문제입니다.
파이썬에서는 큐를 구현할 때, deque 자료구조를 사용합니다. dequq에서 popleft를 지원하며, 큐 구조는 차후 BFS 탐색에서도 자주 쓰이게 됩니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 27434 팩토리얼 3 - 파이썬(Python) (0) | 2023.07.18 |
---|---|
[구현/수학] 백준 27433 팩토리얼 2 - 파이썬(Python) (0) | 2023.07.18 |
[자료구조/스택] 백준 10828 스택 - 파이썬(Python) (0) | 2023.07.17 |
[구현] 백준 28295 체육은 코딩과목 입니다 - 파이썬(Python) (2) | 2023.07.04 |
[자료구조/집합] 백준 1269 대칭 차집합 - 파이썬(Python) (0) | 2023.07.03 |
댓글