알고리즘(Python, JavaScript) - 완주하지 못한 선수
Input
1  | participant = ["John", "David", "Becky"]  | 
Expected Output
1  | result = "John"  | 
목표
참가자 리스트와 완주자 리스트가 주어지고 그 두 리스트를 비교하여 어떤 선수가 완주하지 못하였는지 구하는 것
조건
- 선수의 수는 1명 이상 100,000명 이하.
 - finisher의 길이는 participants의 길이보다 1 작다.
 - 선수 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어짐.
 - 선수 중에는 동명이인이 있을 수 있음.
 
코드
Python
1  | def solution(participant, completion):  | 
JavaScript
1  | function solution(participant, completion) {  | 
해설
- 두 리스트를 set으로 변경하고 차이를 구한 뒤 다시 리스트로 변경하는 것은 동명이인이 있는 경우를 통과 할 수 없음
 - 두 리스트를 정렬하고 함께 재귀하는 동안 다른 이름이 재귀하게되면 participant의 이름이 완주하지 못한 선수이다.
 - 만약 정렬에서 완주하지 못한 선수가 가장 끝으로 정렬된 경우 그 선수까지 재귀하기전에 재귀가 끝나므로 그 후에는 participant의 마지막 선수를 return하면 된다.
 
