반응형
코드 작성
from collections import deque #collection모듈의 deque을 사용한다.
import sys
d = deque()
n = int(input())
for i in range(n):
cmd = sys.stdin.readline().split() #명령어(cmd)를 [0]에는 입력어, [1]에는 추가될 자료를 입력
if cmd[0] == "push_front":
d.appendleft(cmd[1]) #cmd[1]의 값을 d의 처음에 입력
elif cmd[0] == "push_back":
d.append(cmd[1])
elif cmd[0] == "pop_front":
if d: #d에 자료가 있을경우(len(d)==0)으로도 표현
print(d[0])
d.popleft() #d의 제일 첫 번째 자료를 빼냄
else:
print("-1")
elif cmd[0] == "pop_back":
if d:
print(d.pop())
else:
print("-1")
elif cmd[0] == "size":
print(len(d))
elif cmd[0] == "empty":
if d:
print("0")
else:
print("1")
elif cmd[0] == "front":
if d:
print(d[0]) #d의 처음 값 출력
else:
print("-1")
elif cmd[0] == "back":
if d:
print(d[-1]) #d의 마지막 값(또는 top)을 출력
else:
print("-1")
코드 풀이
#1
deque을 사용하여
list가 [1, 2, 3, 4, 5, 6, 7, 8, 10] 있다면, 첫번째에 넣고, 빼고, 마지막에 넣고, 빼고를 하는 연산이다.
하나의 입력을 가지고 1개의 수행을 한다. n개의 자료가 있으면 1개 처리시 1개가 수행되므로 시간복잡도는 n개가 된다.
반응형
'코딩 > Python' 카테고리의 다른 글
[Python] 백준 10872 팩토리얼 (0) | 2022.11.15 |
---|---|
[Python] 백준 1789 수들의 합 (0) | 2022.11.14 |
[Python] 백준 1110 더하기 사이클 (0) | 2022.11.13 |
[Python] 백준 10951 A+B -4 (0) | 2022.11.13 |
[Python] 백준 10952 A+B -5 (0) | 2022.11.13 |