본문 바로가기

Algorithm/Programmers

[Python/알고리즘] 프로그래머스 추억점수

문제출처

그리워하는 사람의 이름을 담은 문자열 배열 name, 각 사람별 그리움 점수를 담은 정수 배열 yearning, 

각 사진에 찍힌 인물의 이름을 담은 이차원 문자열 배열 photo가 매개변수로 주어질 때, 

사진들의 추억 점수를 photo에 주어진 순서대로 배열에 담아 return하는 solution 함수를 완성해주세요.

풀이코드

def solution(name, yearning, photo):
    answer = []
    dic = dict(zip(name, yearning))
    for i in photo:
        score = 0
        for j in i:
            score += dic.get(j, 0)
        answer.append(score)
    return answer

코드설명

1. 내장함수 zip을 사용하여 각 배열이 담고 있는 원소를 튜플의 형태로 반환

2. 2차원 배열을 하나씩 추출

3. 사람들의 추억점수를 반환해줄 변수 score

4. dict의 get함수를 사용하여 2차원 배열에서 꺼낸 1차원 배열의 원소를 score에 저장하고,

디폴트 값으로 None 대신에 다른 값을 설정해야해서 0으로 설정

5. answer에 최종 score 저장 

dict.get(key, default=None)

 

반응형