커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
덱 구현시 동적으로 늘리는 방법
[스킬업] 실무에 바로 쓰이는 알고리즘 by Python
기타
북마크
현*람
댓글
3
추천
0
조회수
7
조회수
7
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.



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










취소
 공유
취소
댓글 0
댓글 알림
나의얼굴