라이브러리

최근 코딩테스트를 보면서 라이브러리가 기억이 안나서 고생한 적이 있어서
코테 전에 보고 갈 내용을 포스팅을 하려합니다.
지극히 개인적으로 자주 사용하는 라이브러리만 정리하니 참고바랍니다.

표준입출력

import sys
input = sys.stdin.readline

순열과 조합

# 순열
from itertools import permutations

print(list(permutations([1,2,3,4], 2)))
# [(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]

# 조합
from itertools import combinations

print(list(combinations([1,2,3,4], 2)))
# [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]

재귀 깊이 제한 해제

import sys
sys.setrecursionlimit(10**6)

데크, deque(Queue, Stack)

from collections import deque

q = deque([])

데크 메서드

  • deque.append(n): 오른쪽 삽입
  • deque.appendleft(n): 왼쪽 삽입
  • deque.pop(): 오른쪽 삭제 & 반환
  • deque.popleft(): 왼쪽 삭제 & 반환
  • deque.extend(array): 배열을 순회하며 오른쪽 삽입
  • deque.extendleft(array): 배열을 순회하며 왼쪽 삽입

힙큐, heapq

from heapq import heappush, heappop

heap = []
heappush(heap, (1, 2))

print(heappop(heap))
# (1, 2)

힙큐 주의점

  • heap[0]을 사용하여 최솟값을 반환할 수 있지만 다음 인자가 두 번째 최솟값이라는 보장은 없다.
  • 최댓값으로 정렬하고 싶다면 음수로 변환하여 저장한다. (이를 꺼내어 쓸 경우에도 변환하여 사용한다.)
  • 리스트를 heapq로 바꾸고 싶다면 heapify를 활용한다.
  • from heapq import heapify heap = [1, 2, 3, 4] heapify(heap)

추가 예정

알고리즘 학습을 하며 라이브러리가 생각나면 자주 사용하는 내장 함수와 함께 추가할 예정입니다.

+ Recent posts