본문 바로가기
알고리즘/프로그래머스

프로그래머스 Lv1 추억 점수(python)

by 개발하는 호랑이 2024. 1. 29.

추억 점수

 

풀이

사진별로 추억 점수를 매기는 문제인데, name, yearning, photo로 이름과 이름과 연결되는 점수, 사진 이 주어진다.
이때 사진에는 name에는 없는 사람들도 있다.
여기서 난 인덱스를 이용해서 photo에서 바로 찾아내는 방식을 사용할 수도 있었겠지만, 딕셔너리를 이용하는 게 더 바람직하다 생각되어서, 딕셔너리를 이용했다.
그 이후 photo를 반복문을 돌리면서 각 이름이 있는지 여부와 있으면 해당 점수를 더하는 방식으로 진행을 해보았다.

# 사진별로 추억점수, 각 인물의 그리움 점수가 사진의 추억 점수
# name과 yearning은 상호연결되기에 dictionary를 이용

def solution(name, yearning, photo):
    # 상호 연결
    match_namevalue = {}
    for i in range(len(name)):
        match_namevalue[name[i]] = yearning[i]
    # 사진별 점수
    scores = []
    for j in range(len(photo)):
        photo_value = 0
        for k in range(len(photo[j])):
            # match_namevalue에 있는 사람일 경우에만 코드 실행
            if match_namevalue.get(photo[j][k]):
                photo_value += match_namevalue[photo[j][k]]
        scores.append(photo_value)
    return scores

다른 사람 풀이

def solution(name, yearning, photo):
    dictionary = dict(zip(name,yearning))
    scores = []
    for pt in photo:
        score = 0
        for p in pt:
            if p in dictionary:
                score += dictionary[p]
        scores.append(score)
    return scores