https://programmers.co.kr/learn/courses/30/lessons/42862
function solution(n, lost, reserve) {
let answer=n;
let realLost=lost.filter(v=>!reserve.includes(v));
let realReserve=reserve.filter(v=>!lost.includes(v));
if(realLost.length===0) return n;
answer-=realLost.length;
for(let x of realLost){
if(realReserve.includes(x+1)){
realReserve.splice(realReserve.indexOf(x+1), 1);
answer++;
}
else if(realReserve.includes(x-1)){
realReserve.splice(realReserve.indexOf(x-1), 1);
answer++;
}
}
return answer;
}
사실 이 코드도 완성형이 아니다. 테스트케이스 17, 18번이 실패다. 그런데 다른 풀이들도 똑같이 두개씩은 테케 실패다... 이 문제만 몇일을 고민하고있는지 모르겠다.
일단 기록해놓고 나중 복습할 때 다시 풀어보자
realReserve.splice(realReserve.indexOf(x+1), 1);
만 해도 원하는 요소가 삭제된다. 만약, const a=realReserve.splice(realReserve.indexOf(x+1), 1);
와 같이 한다면 삭제된 요소가 a에 담겨서 반환된다.