파이썬 deque 정리: maxlen부터 rotate까지 핵심 기능 모음

개발공부를해보자·2025년 5월 14일

공부 정리

목록 보기
26/34

관련 문제: 프로그래머스 2018 KAKAO BLIND RECRUITMENT [1차] 캐시

from collections import deque

# ✅ 생성자 파라미터
dq = deque([1, 2, 3], maxlen=5)  # iterable=[1,2,3], maxlen=5
print("초기 deque:", dq)

# ✅ appendleft(x): 왼쪽에 삽입
dq.appendleft(0)
print("appendleft(0):", dq)  # deque([0, 1, 2, 3])

# ✅ extendleft(iterable): 왼쪽에 iterable을 반대 순서로 삽입
dq.extendleft([-2, -1])
print("extendleft([-2, -1]):", dq)  # deque([-1, -2, 0, 1, 2]) ← 반대 순서로 삽입됨

# ✅ rotate(n): 전체 요소를 n칸 오른쪽으로 회전 (음수면 왼쪽)
dq.rotate(2)
print("rotate(2):", dq)  # deque([1, 2, -1, -2, 0])

# ✅ maxlen 동작 예시: maxlen=5인데 새로 추가하면 앞의 요소가 자동 삭제됨
dq.append(99)
print("append(99):", dq)  # deque([2, -1, -2, 0, 99]) ← 1이 밀려서 제거됨

# ✅ 사용 예시 상황 요약
"""
1. 고정 크기 슬라이딩 윈도우 처리            → maxlen 사용
2. 앞/뒤에서 빠른 삽입/삭제                   → appendleft, popleft, append, pop
3. 최근 데이터 제한 기록 저장소               → maxlen + append
4. 순서 반전하여 앞에서 삽입 필요할 때         → extendleft
5. 큐/스택/원형 회전 큐 구현                  → rotate
6. 시간 복잡도 효율적 자료구조 필요할 때       → O(1) 삽입/삭제가 가능한 deque 활용
"""
profile
개발 공부하는 30대 비전공자 직장인

0개의 댓글