프로그래머스 / lv.1 추억 점수 / Python [맵, 구현]

jjin·2023년 10월 20일
0

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]
profile
진짜

0개의 댓글