오늘은 고수가 23줄만에 푼 문제를 1시간 반 넘게 붙잡고 뻘짓한 슬픈 날이다. 나는 dfs 문제에 좀 약한 것 같다.... 아무튼 고수들의 코드를 보니 하나같이 defaultdict를 쓴 것을 볼 수 있었다. 나는 그냥 dict을 썼다가 key error를 213539번 마주한 상태였다. dict이면 dict이지 defaultdict는 대체 무엇이란 말인가?
객체의 기본값을 미리 지정해 놓을 수 있는 딕셔너리이다.
그러니까 이걸 쓰면 그런 키 값 없어! 하고 뱉는 keyerror로부터 자유로워질 수 있다는 말이다.
from collections import defaultdict
data = defaultdict(int)
예를 들어 이렇게 사용하면 값이 지정되지 않은 키의 값은 0으로 초기화된다.
from collections import defaultdict
data = defaultdict(list)
list를 줬다면 빈 리스트로 초기화된다.
r = defaultdict(list)
#프로그래머스 고득점 kit-여행경로
#i 항공에서 갈 수 있는 애들을 r[i]에 저장
for i,j in tickets:
r[i].append(j)
딕셔너리 값으로 리스트를 넣어서 활용해본 적은 별로 없는 것 같은데, 오늘 다른사람들이 푼 걸 보니 이런 풀이도 코테에 꽤 유용한것 같다.
+22.06.45 추가
defaultdict은 혁명이다. 실전 코딩테스트에서 정말 여러번 써먹었다. 고수들의 풀이를 안봤다면 무슨 일이 일어났을지...풀었다고 휙 치워버리지말고 고수의 풀이를 보자.