プログラマー[レベル1]ユニホーム-JavaScript


問題の説明

質問リンク
一級スポーツウェア
方法
  • n人の学生全員が運動服を持っていると仮定します.
    ->student配列1に初期化(インデックス1から)
  • 被盗运动服的学生-1,带多套运动服的学生+1.
    ->各loss配列とreserve配列に基づいてstudent配列の値を±1に設定します.
  • 一方向に行い、運動服を余った学生に盗難学生を貸す
    ->student配列に隣接する配列の値が2異なる場合、response++に隣接するインデックスの値を1に変更します.
  • コード#コード#
    function solution(n, lost, reserve) {
        let student = new Array(n+1).fill(1);
        student[0]=0;
        for(let i=1;i<=lost.length;++i){
            student[lost[i-1]]-=1;
        }
        for(let i=1;i<=reserve.length;++i){
            student[reserve[i-1]]+=1;
        }
        let answer = student.filter(n=>n!==0).length;
        for(let i=1;i<=n;++i){
            if(student[i]===0&&student[i+1]===2||student[i+1]===0&&student[i]===2){
                student[i]=1;
                student[i+1]=1;
                answer++;
            }
        }
        return answer;
    }