코딩테스트[파이썬]/입문자를 위한 코딩테스트 핵심

기업 코딩테스트시 자주 사용 되는 라이브러리 모음

softmoca__ 2024. 1. 21. 22:13
목차

기업 코딩 테스트시 평소 연습하던 에디터 환경을 사용하지 못하는 경우가 많으니 자동완성으로 익숙해져있던 라이브러리들의 import문과 스펠링 정리.

 

 

순열과 조합

from itertools import permutations

data=['A','B','C']
result = list(permutations(data,3))
from itertools import combinations

data=['A','B','C']
result = list(combinations(data,3))

 

 

중복 순열과 중복 조합

from itertools import product

data=['A','B','C']
result = list(product(data,3))

 

from itertools import combinations_with_replacement

data=['A','B','C']
result = list(combinations_with_replacement(data,3))

 

최소힙  

import sys
import heapq as hq
sys.stdin=open("input.txt", "r")
a=[]
while True:
    n=int(input())
    if n==-1:
        break
    if n==0:
        if len(a)==0:
            print(-1)
        else:
            print(hq.heappop(a))
    else:
        hq.heappush(a, n)

 

이진탐색(bisect)

bisect_left(a, x): 정렬된 순서를 유지하면서 리스트 a에 데이터X를 삽입할 가장 왼쪽 인덱스를 찾는 메서드

bisect_right(a, x) :정렬된 순서를 유지하도록 리스트 a에 데이터X를 삽입할 가장 오른쪽 인덱스를 찾는 메서드

 

from bisect imnport bisect_left, bisect_right

a=[1,2,4,4,8]
x=4
print(bisect_left(a,x))
print(bisect_right(a,x))

 

 

덱(deque)

from collections import deque

 

 

카운터(Counter)

from colections import Counter

arr=Counter(['red','blue','red','green','blue','blue'])
print(arr('blue')) # 3
print(arr('green')) # 1
print(dict(arr) # {'red':2, 'blue':3, 'green':1}

 

딕셔너리

from collections import defaultdict

기본 내장 함수인 dict()을 사용하면  초기값을 설정 하지 않아 에러가 발생하니 가능하면 라이브러리 딕셔너리 사용하기.

collections 모듈의 defaultdict와 일반적인 dict의 차이점은 기본값(default)이 없는 키(key)에 접근했을 때의 동작.

defaultdict  코드

from collections import defaultdict

# defaultdict를 사용하여 빈 리스트를 기본값으로 갖는 사전 생성
my_dict = defaultdict(list)

my_dict['a'].append(1)
my_dict['b'].append(2)
my_dict['c'].append(3)

print(my_dict)  # 출력: defaultdict(<class 'list'>, {'a': [1], 'b': [2], 'c': [3]})
print(my_dict['d'])  # 출력: []

위의 예시에서 볼 수 있듯이, defaultdict는 존재하지 않는 키('d')에 접근할 때 기본값으로 설정한 빈 리스트([])를 반환한다.

그러나 일반적인 dict를 사용할 경우, 존재하지 않는 키에 접근할 때 KeyError가 발생한다:

my_dict = {}

my_dict['a'] = 1
my_dict['b'] = 2
my_dict['c'] = 3

print(my_dict)  # 출력: {'a': 1, 'b': 2, 'c': 3}
print(my_dict['d'])  # KeyError 발생

따라서 defaultdict는 특정 기본값을 갖는 사전을 만들고자 할 때 편리하게 사용될 수 있다.