https://www.acmicpc.net/problem/10866
- 사용언어 : python
- 알고리즘 : 자료 구조, 덱
- Solved.ac Tier : Silver IV
python 코드
1. 문제 정리
1년전 c로 풀어봤던 문제를 다시 파이썬으로 풀어보았다. 파이썬엔 말도안되는 deque가 있기 때문에 굉장히 문제가 쉽다. js로 할 때엔 링크드리스트로 구현 해야 하고 고려 해야 할 것이 2배 이상으로 늘어나서 js로 알고리즘을 하다가 다시 파이썬으로 넘어왔다.
문제에서 주어진 명령어를 모두 구현하면 되는 문제이다. 대부분 명령어들이 deque에서 지원하는 명령어와 같다. append, appendLeft, pop, popLeft를 사용하여 쉽게 해결 할 수 있는 문제이다.
2. 완성 코드
import sys
from collections import deque
deq = deque()
N = int(input())
for i in range(N):
line = sys.stdin.readline().rstrip().split()
if(line[0] == "push_front"):
deq.appendleft(int(line[1]))
elif (line[0] == "push_back"):
deq.append(int(line[1]))
elif (line[0] == "pop_front"):
if(len(deq) <= 0):
print(-1)
else:
print(deq.popleft())
elif (line[0] == "pop_back"):
if (len(deq) <= 0):
print(-1)
else:
print(deq.pop())
elif (line[0] == "size"):
print(len(deq))
elif (line[0] == "empty"):
if (len(deq) <= 0):
print(1)
else:
print(0)
elif (line[0] == "front"):
if (len(deq) <= 0):
print(-1)
else:
print(deq[0])
elif (line[0] == "back"):
if (len(deq) <= 0):
print(-1)
else:
print(deq[len(deq) - 1])
'백준 알고리즘 > Lang-Python' 카테고리의 다른 글
[백준/python] 2493 탑 (0) | 2023.01.10 |
---|---|
[백준/python] 2504 괄호의 값 (0) | 2023.01.10 |
[백준/python] 1935 후위 표기식2 (0) | 2023.01.10 |
[백준/python] 11653 소인수분해 (0) | 2023.01.10 |
[백준/python] 5355 화산수학 (0) | 2023.01.10 |