추억 점수

Mkim4·2023년 6월 16일
1

프로그래머스-추억 점수 (링크바로가기)

이 문제를 반나절 정도 동안 고민한 것 같다.
이 문제를 고민하면서 이중반복문과 조금 친해진 것 같다.

그리고 2차원 리스트를 접근할 때 range로 범위를 지정하지 않아도
이중반복문을 사용하여 쉽게 접근할 수 있다는 것을 알았다.

해당 문제를 풀면서 두 개의 함수에 대해서 알게 되었는데
첫 번째로는 zip 함수이고
두 번째로는 get 함수이다.

zip함수는 리스트의 key와 value 값을 한 개의 딕셔너리로 합치고 싶을 때 쓰면 좋을 것 같다.
get 함수는 딕셔너리 안에 key 값을 확인하고 value이 필요할 때 사용하면 좋을 것 같다.

이중반복문 안에서 add=0 위치가 어디에 위치할 지 고민해야하는 것도 이 문제의 좋은 포인트 같다.

또한 문제 중간중간 print를 사용하여 어떤 결과가 나오는 건지 확인해보고그에 대한 결과는 주석으로 옆에 달았는데
진행과정이 복잡할 수록 헷갈리지 않게 해주는 좋은 습관같다.

결국 혼자 힘으로 풀지는 못했지만 고민하는 시간이 길어질수록 이해의 폭이 넓어진다고 생각한다. 결과가 빨리 나오지 않더라도 시간에 조급해하지 않고 실력이 늘어가고 있다고 생각하면 좋을 것 같다.

아는 것을 푸는 것은 단순히 복습에 불과하다.
모르는 것을 풀어야 실력이 좋아진다.
모른다는 것은 곧 새로운 개념을 하나 더 배우는 거니까 기뻐하자! :)

(나의 풀이 방법)

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

    nameyear_d = dict(zip(name,yearning)) 
    #{'may': 5, 'kein': 10, 'kain': 1, 'radi': 3}
    
    for i in photo:
        add = 0
        for j in i:
            add += nameyear_d.get(j,0)
        answer.append(add)
    return answer

(다른 사람의 풀이방법)

def solution(이름, 점수, 사진):
    return [sum(점수[이름.index(j)] for j in i if j in 이름) for i in 사진]
profile
귀요미 개발자

0개의 댓글