본문 바로가기
Algorithm

[Programmers] 176963.py 추억 점수

by roses16 2023. 6. 11.

dictionary로 구조를 변경하여 풀까하다가, 어떤게 효율성면에서 더 나을지 몰라 일단 문제 그대로 풀어서 해결

def solution(name, yearning, photo):
    answer = []

    for p in photo:
        point = 0
        for people in p:
            try:
              point += yearning[name.index(people)]
            except:
              continue
            
        answer.append(point)

    return answer

 

이후 dictionary로 변경하여 해결하니 속도가 더 빨랐다.

dictionary 변경은 for문으로 진행했다가 다른 분 풀이에서  zip() 을 사용하는 방식을 발견하여 변경했다.

def solution(name, yearning, photo):
    answer = []
    dictionary = dict(zip(name, yearning))

    for p in photo:
        point = 0
        for people in p:
            if people in dictionary:
                point += dictionary[people]
        answer.append(point)

    return answer