문제

제한 사항

입출력 예

풀이
function solution(n, lost, reserve) {
let arr = new Array(n).fill(1);
for (let x of lost) {
arr[x - 1] -= 1;
}
for (let x of reserve) {
arr[x - 1] += 1;
}
let answer = arr.filter((e) => e > 0).length;
for (let i = 0; i < arr.length; i++) {
if (arr[i] === 0) {
if (arr[i - 1] > 1) {
answer++;
arr[i - 1] -= 1;
continue;
}
if (arr[i + 1] > 1) {
answer++;
arr[i + 1] -= 1;
continue;
}
}
}
return answer;
}
- 학생 수와 같은 크기로 1로 초기화한 배열을 만든다.
- lost와 reserve를 각각 순회하며 --, ++을 해주어 현재 상태를 체육복 소지 상태를 만든다.
- 그 상태에서 순회하며 앞 뒤를 비교해준다.