-
[Python] 프로그래머스 / 추억 점수코딩테스트 2024. 8. 3. 09:23
아이디어 1 :
defaultdict
활용일반적인 딕셔너리는 키가 존재하지 않을 때 에러를 발생시키지만, defaultdict로 하면 어떤 키를 호출하더라도 "기본값"을 반환하여 에러를 피할 수 있다. 다만 어떤 기본값을 반환할지 지정해줘야 한다. (int, list, set, labmda 등)
가장 많이 쓰이는 것은 int, list인 것 같다.
from collections import defaultdict a = defaultdict(list) a[2].append(3) print(a[2]) # [3]
lambda도 기본값으로 설정 가능하다:
from collections import defaultdict # 기본값을 0으로 설정하는 lambda 함수 사용 student_scores = defaultdict(lambda: defaultdict(lambda: 0)) # 학생들의 과목별 점수 입력 student_scores["길동"]["수학"] = 90 student_scores["길동"]["영어"] = 85 student_scores["철수"]["수학"] = 75 student_scores["철수"]["과학"] = 80 print(f"길동의 수학 점수: {student_scores['길동']['수학']}") print(f"길동의 과학 점수: {student_scores['길동']['과학']}") print(f"철수의 영어 점수: {student_scores['철수']['영어']}") print(f"철수의 과학 점수: {student_scores['철수']['과학']}") """ 길동의 수학 점수: 90 길동의 과학 점수: 0 철수의 영어 점수: 0 철수의 과학 점수: 80 """
정답 코드
from collections import defaultdict def solution(name, yearning, photo): n = len(name) name_dict = defaultdict(int) for i in range(n) : name_dict[name[i]] = yearning[i] answer = [] for group in photo : value = 0 for name_ in group : value += name_dict[name_] answer.append(value) return answer
_
loewen.tistory.com'코딩테스트' 카테고리의 다른 글
[Python] 프로그래머스 / 네트워크 (0) 2024.08.05 [Python] 프로그래머스 / 공원 산책 (0) 2024.08.03 [Python] 프로그래머스 / 2018 KAKAO BLIND RECRUITMENT / [3차] 자동완성 (0) 2024.06.19 [Python] 백준 1261 : 알고스팟 (0) 2024.06.17 [Python] 백준 1197 : 최소 스패닝 트리 (0) 2024.06.17