728x90
난이도 : Lv. 1
풀이일 : 2505246
https://school.programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
풀이 코드
def solution(participant, completion):
people = {}
n = 0 # 해시 값의 합
# people 딕셔너리에 '참가자 해시 값 : 이름' 추가
# 추가된 해시 값의 총합 저장
for p in participant:
people[hash(p)] = p
n += hash(p)
# 완주한 선수들의 해시 값 뺄셈
for c in completion:
n -= hash(c)
# 완주하지 못한 선수를 해시 값으로 찾아 출력
return people[n]
- 총 참가자를 저장할 people 딕셔너리 선언
- 참가자들의 해시 값 총합을 저장할 n 선언
- 모든 참가자에 대해 '참가자 해시 값 : 참가자 이름'을 만들어 딕셔너리에 추가한다. 추가하며 해시 값을 n에 더한다.
- 완주한 선수들의 해시 값을 n에서 빼준다.
- 남은 숫자는 n에 저장된 완주하지 못한 선수이므로 리턴해준다.
제출 결과
느낀점
- 파이썬에서 HASH문제를 처음 풀어본 것 같다. 앞으로 유용하게 써야지
'알고리즘 > Lv. 1' 카테고리의 다른 글
프로그래머스 82612 부족한 금액 계산하기 파이썬 풀이 (0) | 2025.05.23 |
---|---|
프로그래머스 132267 콜라 문제 파이썬 풀이 (0) | 2025.05.22 |
프로그래머스 160586 대충 만든 자판 파이썬 풀이 (1) | 2025.05.21 |
프로그래머스 17682 다트 게임 자바스크립트 풀이 (1) | 2024.12.24 |
프로그래머스 86491 최소직사각형 자바스크립트 풀이 (0) | 2024.12.24 |