[코딩테스트] 연습문제/ 추억 점수

Effy_ee·2023년 7월 19일
0

코딩테스트

목록 보기
20/118

연습문제(Lv.01)👾

📖 문제

사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다.


💻 답안

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

💡배운점

두 개의 리스트를 하나의 딕셔너리의 key, value 값으로 만들 때


>>> y.update(zip([1, 2], ['one', 'two']))
>>> y
{1: 'one', 2: 'two', 3: 'THREE', 4: 'FOUR'}

dictionary의 get 메서드

dict.get(key, default = None)
  • key : 딕셔너리에서 찾을 키 값

  • default : 키가 존재하지 않을 경우 반환될 값(Value)

 score += dic.get(person, 0)

이 문제에서는 추억 점수가 없는 사람인 경우 0값을 더하도록 😎

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

글 잘 봤습니다, 감사합니다.

답글 달기