function solution(n, lost, reserve) {
reserve.sort((a, b) => a - b);
lost.sort((a, b) => a - b);
const lostList = [];
lost.forEach((lostUser, j, arr) => {
reserve.includes(lostUser)
? reserve.splice(reserve.indexOf(lostUser), 1)
: lostList.push(lostUser);
});
let borrowUser = 0;
lostList.forEach((lostUser, j, arr) => {
if (reserve.includes(lostUser - 1)) {
reserve.splice(reserve.indexOf(lostUser - 1), 1);
++borrowUser;
} else if (reserve.includes(lostUser + 1)) {
reserve.splice(reserve.indexOf(lostUser + 1), 1);
++borrowUser;
}
});
return n - lostList.length + borrowUser;
}
reserve.sort((a, b) => a - b);
lost.sort((a, b) => a - b);
const lostList = [];
lost.forEach((lostUser, j, arr) => {
reserve.includes(lostUser)
? reserve.splice(reserve.indexOf(lostUser), 1)
: lostList.push(lostUser);
});
여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다.
let borrowUser = 0;
lostList.forEach((lostUser, j, arr) => {
if (reserve.includes(lostUser - 1)) {
reserve.splice(reserve.indexOf(lostUser - 1), 1);
++borrowUser;
} else if (reserve.includes(lostUser + 1)) {
reserve.splice(reserve.indexOf(lostUser + 1), 1);
++borrowUser;
}
});
return n - lostList.length + borrowUser;
날라가서 2번째로 쓰는 여담😂
이번 문제는 풀이 과정은 알 것 같은데 코딩으로 잘 안나와서 여러번 틀렸다...
forEach을 돌리는 배열을 splice하면 forEach가 모든 값을 확인할 수 없으므로 건들면 안된다는걸 깨달았다. 막상 코드를 쓸때는 생각이 안드는데 나중에 보고 나면 당연히 안되는걸 왜 하고 있었지? 걸 깨닫는다.🤦♀️🤦♂️🤦♀️🤦♂️