728x90
반응형
Silver IV
# 10866 덱
링크 : https://www.acmicpc.net/problem/10866
풀이
import sys
from collections import deque
q = deque()
N = int(sys.stdin.readline())
for i in range(N):
order = sys.stdin.readline().split()
if order[0] == 'push_front':
q.appendleft(order[1]) # q.insert(0, order[1])도 가능
elif order[0] == 'push_back':
q.append(order[1])
elif order[0] == 'pop_front':
if len(q) == 0:
print(-1)
else:
print(q.popleft())
elif order[0] == 'pop_back':
if len(q) == 0:
print(-1)
else:
print(q.pop())
elif order[0] == 'size':
print(len(q))
elif order[0] == 'empty':
if len(q) == 0:
print(1)
else:
print(0)
elif order[0] == 'front':
if len(q) == 0:
print(-1)
else:
print(q[0])
elif order[0] == 'back':
if len(q) == 0:
print(-1)
else:
print(q[-1])
후기
- sys를 이용해야 정답을 받을 수 있다 : 파이썬 시간초과 문제 해결
- 리스트의 맨 앞에 요소를 넣는 방법은 2가지가 있다. n은 삽입하는 곳의 인덱스
- deque의 appendleft('a')
- list.insert(n, 'a')
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] # 2108 통계학 (0) | 2022.02.20 |
---|---|
[백준 파이썬] # 11651 좌표 정렬하기 2 (0) | 2022.02.20 |
[백준 파이썬] # 1978 소수 찾기 (0) | 2022.02.19 |
[백준 파이썬] # 1316 그룹단어 체커 (0) | 2022.02.19 |
[백준 파이썬] # 18258 큐 2 (0) | 2022.02.19 |