프로그래머스 LV1 - 완주하지 못한 선수
완주하지 못한 선수
내 풀이
def solution(participant, completion):
hash_dict = {}
hash_sum = 0
for man in participant:
hash_dict[hash(man)] = man
hash_sum += hash(man)
for man in completion:
hash_sum -= hash(man)
return hash_dict[hash_sum]
다른 풀이
def solution(participant, completion):
answer = ''
# 1. 두 list를 sorting한다
participant.sort()
completion.sort()
# 2. completeion list의 len만큼 participant를 찾아서 없는 사람을 찾는다
for i in range(len(completion)):
if(participant[i] != completion[i]):
return participant[i]
# 3. 전부 다 돌아도 없을 경우에는 마지막 주자가 완주하지 못한 선수이다.
return participant[len(participant)-1]
출처: https://coding-grandpa.tistory.com/85 [개발자로 취직하기:티스토리]
풀이 해석
- 해싱을 이용한 풀이는 아니지만 sort를 이용하여 같은 위치에 다른 key가 있을 경우 완주하지 못한 사람이다
배울 점
- sort를 활용하여 찾는 아이디어
댓글남기기