ジャージ



問題の説明

  • 全体生徒数n、盗難ユニフォームの生徒数配列が失われ、余剰ユニフォームをもたらした生徒数配列reserve
  • 複数着の学生は前列または後列の学生にしか貸せない
  • 体育の授業が受けられる生徒の最大値を返す
  • せいげんじょうけん

  • 全生徒数が2名以上30名以下
  • 盗難生徒数1名以上n名以下重複なし
  • ユニホームを複数着持参した生徒数は1名以上n名以下重複なし
  • 複数のユニホームを持ってきた生徒が盗まれて他の生徒に貸せなくなった
  • に答える

    function solution(n, lost, reserve) {
        let answer = 0;
        let count = 0;
        
        for(let i=0;i<lost.length;i++){
            for(let j=0;j<reserve.length;j++){
                if(lost[i] === reserve[j]){
                    lost[i] = '*';
                    reserve[j] = '*';
                }
            }
        }
        
        for(let i=0;i<lost.length;i++){
            for(let j=0;j<reserve.length;j++){
                if(lost[i]-1 === reserve[j]||lost[i]+1 === reserve[j]){
                    lost[i] = '*';
                    reserve[j] = '*';
                }
            }
        }
        
        lost.forEach(item=>{
            if(item !== '*')
                count += 1;
        })
        answer = n - count;
        console.log(answer);
        return answer;
    }

    チェックポイント

  • テストケース:8、[4,5]、[5,6]
  • 余程ありますが、盗難生徒を先に解決しないと、5番生徒は実際に貸すことができませんが、4番生徒は5番生徒の余罰を受け、5番生徒は6番生徒の余罰を受け、エラーが発生した場合は、先に返事を返さなければなりません