목차
기업 코딩 테스트시 평소 연습하던 에디터 환경을 사용하지 못하는 경우가 많으니 자동완성으로 익숙해져있던 라이브러리들의 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는 특정 기본값을 갖는 사전을 만들고자 할 때 편리하게 사용될 수 있다.
'코딩테스트[파이썬] > 입문자를 위한 코딩테스트 핵심' 카테고리의 다른 글
[배열과 연결리스트와 덱] -연속된 1의 길이 (0) | 2024.01.22 |
---|---|
[배열과 연결리스트와 덱] -합격생 (0) | 2024.01.22 |
[배열과 연결리스트와 덱]-최솟값의 위치 (0) | 2024.01.22 |
배열과 연결리스트, 덱(deque) 자료구조 (0) | 2024.01.22 |
코드업 파이썬 기초 100 (0) | 2024.01.21 |