언어 : Python
문제
제한 사항
1. 문제 분석
- 사진 속 인물의 이름과 그리움 점수를 기반으로 각 사진의 추억 점수를 계산하는 문제
- 주어진 데이터를 활용하여 각 사진별로 점수를 계산하고, 이를 순서대로 배열로 반환한다.
2. 계산 로직
- name 과 yearning 배열을 매핑하여 딕셔너리를 생성한다
- 각 photo[i] 의 이름이 딕셔너리에 있는 경우 해당 점수를 가져오고, 없는 경우 0으로 처리한다
- 각 사진의 점수를 합산하여 결과 리스트에 저장한다
3. 제한 사항 분석
- name 의 길이와 yearning 의 길이는 항상 동일하다
- name 에는 중복된 이름이 없으므로 딕셔너리로 변환하기 적합하다
- name 과 yearning 배열의 길이가 최대 100, photo 배열의 길이가 최대 100,
각 내부 배열의 길이가 최대 100이므로 최대 연산량은 100 x 100 = 10,000.
4. 문제 풀기
- 딕셔너리로 매핑
name_yearning = dict(zip(name, yearning))
- 각 사진의 점수 계산
각 photo[i] 를 순회하여 이름별 점수를 합산한다
이름이 딕셔너리에 없으면 get(key, 0) 로 기본값 0을 반환한다
photo_scores = [sum(name_yearning.get(person, 0) for person in photo_list) for photo_list in photo]
- 계산한 점수를 배열 형태로 반환한다
- 전체 코드
def solution(name, yearning, photo):
# 이름과 그리움 점수를 딕셔너리로 매핑
name_yearning = dict(zip(name, yearning))
# 각 사진별 추억 점수 계산
return [sum(name_yearning.get(person, 0) for person in photo_list) for photo_list in photo]
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers/Java] 서버 증설 횟수 (0) | 2025.03.24 |
---|---|
[Programmers/Python] [PCCP 기출문제] 2번 / 퍼즐 게임 챌린지 (2) | 2024.11.09 |
[Programmers/Python] 달리기 경주 (0) | 2024.11.09 |
[Programmers/Python] [PCCE 기출문제] 10번 / 데이터 분석도움말 (0) | 2024.11.09 |