
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
https://www.acmicpc.net/problem/10866
직접 구현해서 풀었는데, 풀다보니 배열을 동적으로 늘리는 방법에 대해서 잘 모르겠고 다른분 답들도 보면 값을 고정으로 가지고 있어서요.
늘리는 아이디어 정도라도 알려주세요.
class MyDeque():
def __init__(self):
self.arr = []
self.size = 1000000
self._front = 0
self._back = 0
self.len = 0
self.arr = [None for _ in range(self.size)]
def is_full(self):
return self.len >= self.size - 1
def is_empty(self):
return self.len == 0
def push_front(self,val):
#삽입 후 이동 (중요)
if(self.is_full()):
return
self.arr[self._front] = val
self._front = (self._front - 1) % self.size
self.len += 1
def pop_front(self):
#이전 위치 참조 (중요)
if(self.is_empty()):
return -1
self._front = (self._front + 1) % self.size
val = self.arr[self._front]
self.arr[self._front] = None
self.len -= 1
return val
def front(self):
#이전 위치 참조 (중요)
if(self.is_empty()):
return -1
front = (self._front + 1) % self.size
val = self.arr[front]
return val
def push_back(self,val):
#이동 후 삽입
if(self.is_full()):
return
self._back = (self._back + 1) % self.size
self.arr[self._back] = val
self.len += 1
def pop_back(self):
#참조 후 반환
if(self.is_empty()):
return -1
val = self.arr[self._back]
self.arr[self._back] = None
self._back = (self._back - 1) % self.size
self.len -= 1
return val
def back(self):
#참조 후 반환
if(self.is_empty()):
return -1
val = self.arr[self._back]
return val
