프로그래머스
https://programmers.co.kr/learn/courses/30/lessons/42862
- 바로 앞이나 바로 뒤의 학생에게만 체육복을 빌려줄 수 있다
- 최대한 많은 학생이 체육 수업을 들어야한다
- 여벌 체육복이 있는 학생만 다른 학생에게 체육복을 빌려줄 수 있다
- 여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있고, 이떄는 하나만 도난당했다고 가정하여 남은 체육복은 하나이므로 다른 학생에게 체육복을 빌려줄 수 없다
나의 풀이
function solution(n, lost, reserve) {
let students = new Array(n+1).fill(1);
for(let i=0;i<lost.length;i++){
students[lost[i]]=0;
}
for(let i=0;i<reserve.length;i++){
students[reserve[i]]++;
}
for(let i=1;i<students.length;i++){
if(students[i]===0){
if(students[i-1]===2){
students[i-1]--;
students[i]++;
}
else if(students[i+1]===2){
students[i+1]--;
students[i]++
}
}
}
return students.filter((el)=>{
return el===1 || el===2;
}).length-1
}