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
반응형