https://programmers.co.kr/learn/courses/30/lessons/42862
const solution = (n, lost, reserve) => {
let Lost = lost.filter(a => !reserve.includes(a)); //여벌이 없는데 체육복을 잃어버린 학생
let Reserve = reserve.filter(a => !lost.includes(a)); //여벌이 있는데 체육복을 잃어버린 학생
return n - Lost.filter(lostStudent => {
//앞, 뒤번호 학생 중 여벌이 있는지 확인
let extra = Reserve.find(reserveStudent => Math.abs(reserveStudent - lostStudent) <= 1);
//여벌이 없다면
if(!extra) return true;
//여벌을 빌려준 뒤 Reserve 배열에서 해당 학생의 번호 제거
Reserve = Reserve.filter(reserveStudent => reserveStudent !== extra);
}).length;
}
여벌이 있는지 없는지 먼저 구분해줘야 하는게 첫번째 포인트,,,,, (어렵다)
Math.abs 사용이 두번째 포인트🤔