링크 : https://www.acmicpc.net/problem/18258
- 문제
- 소요시간: 13분 51초
- 설계하기(접근방법)
1. 명령의 수 n 입력받는다
2. n번 만큼 명령이 주어진다.
3. 메서드들을 파이썬의 deque 를 import해서 구현한다
-> 리스트로 구현하면 popleft를 진행할 떄 O(n)만큼의 연산으로 시간초과가 발생한다.
- 코드(출력)
import sys
from collections import deque
n = int(input())
queue = deque([])
for i in range(n):
command = sys.stdin.readline().split()
if 'push' in command:
queue.append(command[1]) # command[1]은 정수 x
if command[0] == 'pop':
if queue:
print(queue.popleft())
else:
print(-1)
if command[0] == 'size':
print(len(queue))
if command[0] == 'empty':
if not queue:
print(1)
else:
print(0)
if command[0] == 'front':
if queue:
print(queue[0])
else:
print(-1)
if command[0] == 'back':
if queue:
print(queue[-1])
else:
print(-1)
- 얻어갈 부분
1. que 자료구조 사용시 deque를 import한다
2. deque 를 사용할 때 ()안에 리스트형태로 선언해주어야한다 -> ([])
'알고리즘(백준) > 자료구조' 카테고리의 다른 글
[알고리즘/자료구조] 10866번 : 덱 - python (0) | 2023.03.05 |
---|---|
[알고리즘/자료구조] 2164번 : 카드2 - python (0) | 2023.03.05 |
[알고리즘/자료구조] 1158번 : 요세푸스 문제 - python (0) | 2023.03.04 |
[알고리즘/자료구조] 9012번 : 괄호- python (0) | 2023.03.03 |
[알고리즘/자료구조] 10828번 : 스택 - python (0) | 2023.03.02 |