[파이썬&python_pass]프로그래머스_LV1_추억 점수_풀이

2024. 5. 28. 12:15코드리뷰

728x90
반응형

공부하는허딩크 : https://www.youtube.com/live/Q-70F3kAD8c?feature=shared

 

문제를 읽고 나서 바로 반복문으로 하면 바로 풀릴 것 같았다.

 

<첫번째 시도 : 통과>

단, 첫번째는 name과 yearning 리스트를 딕셔너리로 합치는 작업이다.

그 다음 이중for문으로 photo의 각 리스트마다의 점수 합산을 해서 해당 점수는 answer에 append하면 마무리된다.

def solution(name, yearning, photo):
    scores = {}
    answer = []
   
    for i in range(len(name)):
        scores[name[i]] = yearning[i]
   
    for i in photo:
        score = 0
        for j in i:
            if j in scores:
                score += scores[j]
        answer.append(score)            
   
    return answer

 

<다른사람 풀이 참고>

1. 리스트 2개를 딕셔너리로 만들때 zip함수 활용

  scores = dict(zip(name, yearning))을 하면 된다.

2. 한줄 코드 : 잘 기억해라!

    1) 큰 for문은 맨 뒤에

    2) 내부 for문이 앞에 오고 if가 뒤에 온다.


def solution(name, yearning, photo):
    return [sum(yearning[name.index(i)] for i in shot if i in name) for shot in photo]
728x90
반응형