[PS] 덱(Deque)
deque는 양쪽 끝에서 O(1)으로 삽입/삭제가 가능한 자료구조이다. 내부적으로 이중 연결 리스트 기반으로 구현되어 있다. 반면에 인덱스로 접근하면 O(n)이다. 그래서 인덱스 접근이 잦다면 list가 더 유리하다. 주요 메서드
deque는 양쪽 끝에서 O(1)으로 삽입/삭제가 가능한 자료구조이다. 내부적으로 이중 연결 리스트 기반으로 구현되어 있다. 반면에 인덱스로 접근하면 O(n)이다. 그래서 인덱스 접근이 잦다면 list가 더 유리하다. 주요 메서드
1. 산술 연산자 # +, -, *, /, //, %, ** 10 // 3 # 3 -10 // 3 # -4 10 % 3 # 1 -10 % 3 # 2 2 ** 10 # 1024 자주 쓰는 패턴 # 1) 중간값 (파이썬은 bigint라 오버플로우 걱정 없음) mid = (left + right) // 2 # 2) 올림 나눗셈 (m
collections.deque를 큐로 사용한다. deque는 양 끝에 삽입/삭제가 O(1)이기 때문이다. from collections import deque queue = deque() # 삽입 queue.append(1) queue.append(2) queue.append(3) # deque([1, 2, 3]) # 꺼내기 val = queue.p
list를 스택으로 사용할 수 있다. stack = [] # push stack.append(1) stack.append(2) stack.append(3) # stack = [1, 2, 3] # pop top = stack.pop() # top = 3, stack = [1, 2] # top top = stack[-1] # top = 2 # empty