Python3/프로그래머스

2022.05.31 [프로그래머스] (python 파이썬) 완주하지 못한 선수

ian's coding 2022. 5. 31. 22:36
728x90
반응형

 

https://programmers.co.kr/learn/courses/30/lessons/42576

 

코딩테스트 연습 - 완주하지 못한 선수

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수

programmers.co.kr

 


풀이

이 문제는 각 선수별로 for문을 돌면서 완주한 선수를 지우고 마지막 남은 선수를 출력해도 되지만

해시 문제이기 때문에 해시로 해결했다.

각 선수들의 key:value값으로 저장할 딕셔너리 dic을 만들고 각 해쉬값의 합을 저장할 sum_hash를 만들었다.

그리고 for 문을 돌며 participant의 선수들의 해시값을 딕셔너리에 저장, sum_hash에 해시값을 더했다.

그리고 완주자 리스트인 completion의 선수들의 해시값을 sum_hash에 뺐다.

그리고 마지막 남은 sum_hash값의 value를 출력했다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(participant, completion):
    answer = ''
    dic={}
    sum_hash=0
    for i in participant:
        dic[hash(i)]=i
        print(hash(i))
        sum_hash+=hash(i)
    for i in completion:
        print(hash(i))
        sum_hash-=hash(i)
    answer=dic[sum_hash]
    return answer
cs

 

728x90
반응형