[프로그래머스] 체육복
// https://school.programmers.co.kr/learn/courses/30/lessons/42862
function solution(n, lost, reserve) {

    // 여벌이 있는 학생만 체육복 빌려줄수있다
    // 여벌을 가지고 있는 학생도 도난을 당할수있다.
    // lost, reserve는 각 학생들의 index
        
    //전체 학생 배열 생성
    const student = new Array(n).fill(1)
    let max = 0;
    
    // 분실학생 for loop --
    for(let i = 0; i < lost.length; i++){
        student[lost[i]-1] -= 1
    }
    
    // 여분데이터 for loop ++
    for(let i = 0; i < reserve.length; i++){
        student[reserve[i]-1] += 1
    }
       
        
    for(let i = 0; i < student.length; i++){
        // 각 인덱스별 계산이 완료된 student 배열을 조건에 맞는지 확인
        
        if(!student[i]){
        // 해당 학생이 가진 체육복이 없을때 확인
            if(0 < i && student[i-1] === 2){
        // 첫번째 학생이 아닐때만 왼쪽에 있는 학생데이터와 비교 , 왼쪽에 있는 학생이 2개 일때 여분을 준다.
                student[i] += 1
                student[i-1] -= 1
            }else if(student[i+1] === 2){
        // 오른쪽 학생이 2개 일때 여분을 준다.
                student[i] += 1
                student[i+1] -= 1
            }
        }
        
        // 계산후 해당 학생이 체육복을 가지고 있는지 확인 후 있으면 ++
        if(student[i]) max ++
    }
    
        
        return max
    
    }