Algorithm Problem with JavaScript — 3day
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
제한사항
입출력 예
입출력 예 설명
예제 #1
leo는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.
예제 #2
vinko는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.
예제 #3
mislav는 참여자 명단에는 두 명이 있지만, 완주자 명단에는 한 명밖에 없기 때문에 한명은 완주하지 못했습니다.
n과 n-1의 길이를 가진 두 배열을 비교하는 문제입니다.
n에는 존재하지만 n-1에는 존재하지 않는 원소를 문자열로 리턴합니다.
동명이인이 있을 수 있다는 제한사항을 염두하여 비교하면 됩니다.
function solution(participant, completion) {
const sortParticipant = participant.sort();
const sortCompletion = completion.sort();
for (let i = 0; i < sortParticipant.length; i++) {
if (sortParticipant[i] !== sortCompletion[i]) {
return sortParticipant[i]
}
}
}
간단한 배열 비교 문제였기에 sort를 사용하여 정렬 후 반복문과 조건문을 통해 해결하였습니다.
그러나 sort 메서드는 성능 저하의 주요 원인이라는 글들이 있어 추후 리팩토링이 필요할 듯 합니다.
단순한 풀이에 그치지 않고 성능 개선에도 관심을 가져야 할 필요성을 느꼈습니다.