zip(k, v) 사용 dict 초기화
d = dict(zip(k, v))
len: 여러 iterables 중 가장 작은 것의 길이
def zip(*iterables):
# zip('ABCD', 'xy') --> Ax By
for i in range(N):
d[k[i]] = v[i] 보다 조금 더 빠르다.
iterables에 set을 넣으면 sort된 순으로 mapping
반복문3 + .index(), 빠른 구현 O(N4)
def solution(name, yearning, photo):
answer = [0] * len(photo)
for i in range(len(photo)):
for p in photo[i]:
if p in name:
answer[i] += yearning[name.index(p)]
return answer
dict.setdefault 사용, 복잡도 개선 O(N2)
def solution(name, yearning, photo):
answer = [0] * len(photo)
d = dict()
for i in range(len(name)):
d[name[i]] = yearning[i]
for i in range(len(photo)):
for n in photo[i]:
answer[i] += d.setdefault(n, 0)
return answer
zip, 숏코딩 O(N2)
def solution(name, yearning, photo):
d = dict(zip(name, yearning))
return [sum(d.setdefault(n, 0) for n in p) for p in photo]