📌 Source Code: set/prg4-students.js
function solution(n, lost, reserve) {
let students = {};
for (let i = 1; i <= n; i++) {
students[i] = 1;
}
for (let r = 0; r < reserve.length; r++) {
let num = reserve[r];
students[num] += 1;
}
for (let l = 0; l < lost.length; l++) {
let num = lost[l];
students[num] -= 1;
}
// 여벌 나눔 계산
// lost 빼고 나서 나머지 학생들 중 0인 학생만 찾아서
// 앞 뒤로 1 이상일 시 공유함
for (let sKey in students) {
if (students[sKey] === 0) {
let next = Number(sKey) + 1;
let prev = Number(sKey) - 1;
if (prev > 0 && students[prev] > 1) {
students[prev] = students[prev] - 1;
students[sKey] = 1;
continue;
}
if (next <= n && students[next] > 1) {
students[next] = students[next] - 1;
students[sKey] = 1;
continue;
}
}
}
const result = Object.values(students).filter((item) => item > 0);
return result.length;
}
console.log("result : ", solution(5, [2, 4], [1, 3, 5]));
console.log("result : ", solution(5, [2, 4], [3]));
console.log("result : ", solution(3, [3], [1]));