백준-10866번(덱)-python
dequeue문제를 풀어보았다.
push_front함수는 insert(0,x[1])로도 표현이 가능했지만,일반 queue와 달리 appendleft라는 함수로도 가능했다.
하지만 vscode에서는 파랭이가 떠서 기분이 좋지않다.에디터를 바꿀까 고민하고있다.
또한 push_back연산은 덱의 마지막부분에 요소를 추가해주는 함수이다.
append(x[1])로 표현가능하다.
pop_front연산은 덱의 제일 앞에 있는 요소를 빼내는 함수이다.popleft()를 사용한다.
pop_back은 덱의 마지막 요소를 제거하는 함수이다.pop()을 사용하였다.
size는 덱의 요소의 수를 반환해야하므로 len()함수를 사용한다.
empty는 덱이 비었으면 1,요소가 들어있으면 0을 반환한다.
front는 덱의 맨 앞요소인 deque[0]을 출력한다.(제거아님)
back는 덱의 마지막 요소인 deque[-1]을 출력한다.(제거아님)
import sys
from collections import deque
input = sys.stdin.readline
def solution():
deque: deque=([])
for _ in range(int(input())):
x= input().split()
if x[0] == 'push_front':
deque.insert(0, x[1])
elif x[0] == 'push_back':
deque.append(x[1])
elif x[0] == 'pop_front':
print(deque.pop(0) if deque else -1)
elif x[0] == 'pop_back':
print(deque.pop() if deque else -1)
elif x[0] == 'size':
print(len(deque))
elif x[0] == 'empty':
print(0 if deque else 1)
elif x[0] == 'front':
print(deque[0] if deque else -1)
elif x[0] == 'back':
print(deque[-1] if deque else -1)
solution()
'알고리즘 > 백준' 카테고리의 다른 글
백준-1000번(A+B)-python (0) | 2023.11.23 |
---|---|
백준-2992번(크면서 작은 수)-python (0) | 2023.11.23 |
백준-24445번(알고리즘 수업 - 너비 우선 탐색 2)-python (0) | 2023.11.23 |
백준-24444번(알고리즘 수업 - 너비 우선 탐색 1)-python (0) | 2023.11.23 |
백준-24480번(알고리즘 수업 - 깊이 우선 탐색 2)-python (0) | 2023.11.23 |