[문제]

[풀이]
def solution(name, yearning, photo):
answer = []
for i in range(len(photo)):
missing_score = 0
for j in photo[i]:
if j in name:
missing_score += yearning[name.index(j)]
answer.append(missing_score)
return answer
나는 인덱싱으로 풀었지만 시간복잡도가 O(P⋅N^2) 이므로 시간초과날 확률 높음!
아래는 해시로 다시 풀어본 것, 아래코드는 시간복잡도 O(N + P⋅M)
def solution(name, yearning, photo):
score_map = dict(zip(name, yearning))
answer = []
for people in photo:
total = sum(score_map.get(person, 0) for person in people)
answer.append(total)
return answer
[링크]
https://school.programmers.co.kr/learn/courses/30/lessons/176963
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'CodingTest > Programmers' 카테고리의 다른 글
| [프로그래머스 Lv1] 카드 뭉치(python, 구현) (0) | 2025.08.07 |
|---|---|
| [프로그래머스 Lv1] 비밀지도(python, 구현) (0) | 2025.08.07 |
| [프로그래머스 Lv1] 폰켓몬(python, 해시) (0) | 2025.08.07 |
| [프로그래머스 Lv1] 기사단원의 무기(python, 구현) (0) | 2025.08.07 |
| [프로그래머스 Lv1] 모의고사(python, 완전탐색) (0) | 2025.08.07 |
