추억 점수
풀이
사진별로 추억 점수를 매기는 문제인데, 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
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Lv1 개인정보 수집 유효기간(python) (1) | 2024.01.29 |
---|---|
프로그래머스 Lv1 문자열 내림차순으로 배치하기(python) (0) | 2024.01.29 |
프로그래머스 Lv1 같은 숫자는 싫어(python) (0) | 2024.01.29 |
프로그래머스 Lv2 다음 큰 숫자(python) (0) | 2024.01.29 |
프로그래머스 Lv1 크기가 작은 부분 문자열 (python) (0) | 2024.01.29 |