10866번: 덱
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
<내 코드>
import sys
class Deque:
def __init__(self):
self.result = list()
def push_front(self, num):
self.result.insert(0, num)
def push_back(self, num):
self.result.append(num)
def pop_front(self):
if(self.empty()):
return -1
else:
return self.result.pop(0)
def pop_back(self):
if(self.empty()):
return -1
else:
return self.result.pop()
def front(self):
if(self.empty()):
return -1
else:
return self.result[0]
def back(self):
if(self.empty()):
return -1
else:
return self.result[-1]
def size(self):
return len(self.result)
def empty(self):
if(self.size() == 0):
return 1
else:
return 0
N = int(sys.stdin.readline())
deque = Deque()
for _ in range(N):
input_split = sys.stdin.readline().split()
oper = input_split[0]
if(oper == 'push_front'):
deque.push_front(int(input_split[1]))
elif(oper == 'push_back'):
deque.push_back(int(input_split[1]))
elif(oper == 'pop_front'):
print(deque.pop_front())
elif(oper == 'pop_back'):
print(deque.pop_back())
elif(oper == 'front'):
print(deque.front())
elif(oper == 'back'):
print(deque.back())
elif(oper == 'empty'):
print(deque.empty())
elif(oper == 'size'):
print(deque.size())
'알고리즘 문제풀기 > 백준 - Python' 카테고리의 다른 글
[백준 7568] 덩치 - Python (브루트포스) (0) | 2021.05.17 |
---|---|
[백준 1992] 쿼드트리 - Python (분할정복, 재귀) (0) | 2020.11.24 |
[백준 2630] 색종이 만들기 - Python (분할정복, 재귀) (0) | 2020.11.24 |
[백준 14889] 스타트와 링크 - Python (브루트포스, 백트래킹) (0) | 2020.11.02 |
[백준 14888] 연산자 끼워넣기 - Python (백트래킹, DFS, 브루트포스) (0) | 2020.10.27 |