-
[Programmers] 완주하지 못한 선수programing/Algorithm 2020. 10. 24. 17:34
완주하지 못한 선수
해시를 이용해서 푸는 문제.
python3
def solution(participant, completion): pMap = dict() cMap = dict() for person in participant: if(person in pMap): pMap[person] += 1 else: pMap[person] = 1 for person in completion: if(person in cMap): cMap[person] += 1 else: cMap[person] = 1 for person in pMap: if(person not in cMap): return person elif(pMap[person] == cMap[person] + 1): return person
참가자와 완주자 각각 해시맵을 만든다.
참가자 맵을 순회하면서 완주자 맵에 참가자 이름이 있는지 확인한다.
만약 없다면 그 참가자는 완주하지 못한 선수가 명백하므로 바로 리턴.
만약 있다면, 동명이인의 경우를 고려해야 하므로 값을 비교해서 1 차이나면 완주하지 못한 선수이므로 바로 리턴.
완주하지 못한 선수는 무조건 1명이므로, 그 외의 예외 케이스는 없음.
'programing > Algorithm' 카테고리의 다른 글
[Programmers] 2016년 (0) 2020.11.15 [Programmers] K번째 수 (0) 2020.10.25 [Programmers] 두개 뽑아서 더하기 (0) 2020.10.07 [Programmers] 크레인 인형뽑기 게임 (0) 2020.10.07 [Algorithm] BFS & DFS (0) 2020.05.26 댓글