function solution(participant, completion) {
participant.sort();
completion.sort();
const len = participant.length;
for (let i = 0; i < len; i++) {
if (participant[i] !== completion[i]) {
return participant[i];
}
}
}
console.log(solution(
["mislav", "stanko", "mislav", "ana"],
["stanko", "ana", "mislav"],
));
배열과 메서드
처음에 풀땐 간단히 배열 메서드를 활용하려고 했어서 splice 메서드를 살펴보게 되었다.
1/ 삭제한 개수만큼 배열의 길이가 더 짧아짐
2/ arr.splice(시작인덱스, 삭제할 개수)
원하는 개수만큼 배열에서 요소를 제거할 수 있다.
3/ arr.splice(시작인덱스, 삭제할 개수, 대체 요소)
원하는 개수만큼 배열에서 요소를 제거하고, 그 자리에 다른 것을 대체할 수 있다.
4/ const removed = arr.splice(시작인덱스, 삭제할 개수)
변수로 선언하면 삭제된 요소로 구성된 배열을 알 수 있다.
5/ const removed = arr.splice(시작인덱스, 0, 대체 요소)
요소를 제거하지 않고 시작인덱스부터 대체요소를 추가할 수 있다.
처음에 문제를 풀땐 배열의 요소를 비교할 생각을 못하고, 배열의 요소를 find나 filter메서드로 조작하려고만 했다.
해당유형이 해시라고 하는데, 이 부분에 대해서 더 공부해보자. 그리고 for문으로 기존의 배열을 건드리지않고 해결할 수 있는 방법을 찾아보자.
문제풀이가 기억나서 스무스~하게 해결했다. ✌️