본문 바로가기

알고리즘/Lv. 1

프로그래머스 42576 완주하지 못한 선수 파이썬 풀이

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문제를 처음 풀어본 것 같다. 앞으로 유용하게 써야지