하루에 하나씩 공부하기
완주하지 못한 선수-LV1 본문
- 문제
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
코딩테스트 연습 - 완주하지 못한 선수 | 프로그래머스 스쿨
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 키포인트
딕셔너리에서 빼기를 어떻게 접근해야 할까
- 코드
def solution(participant, completion):
answer=''
participant.sort()
completion.sort()
for i in range(len(completion)):
if(participant[i] != completion[i]):
return participant[i]
return participant[len(participant)-1]
두 리스트를 정렬한 후, 값이 같지 않다면 완주하지 못한 선수
끝까지 같다면 리스트에서 마지막에 남은 선수가 완주하지 못한 선수
def solution(participant, completion):
dict={}
sumhash=0
for i in participant:
dict[hash(i)]=i
sumhash+=hash(i)
for j in completion:
sumhash-=hash(j)
return dict[sumhash]
해시 어렵다
딕셔너리에 원소의 해시값을 인덱스로 사용
그후 해시의 합과 차를 통해 마지막 하나 남은 원소의 인덱스를 구함