[BOJ]15792密室脱出|グリディ



0から、一致するノードの長さを繰り返します.
  • 自分の値と同じ部分がある場合は、次の検索部分に移動します.
  • 初期値から別の部分がある場合は、値を変更します.
  • 何度か値を変更したことを確認すればいいです.
    const fs = require("fs");
    const filePath = process.platform === "linux" ? "/dev/stdin" : "input.txt";
    let input = fs.readFileSync(filePath).toString().trim().split("\n");
    
    let n=Number(input[0])
    let note=input[1].split(' ').map(Number);
    let reset=new Array(n).fill(0);
    
    let cnt=0;
    for(let i=0;i<n;i++){
        if(reset[i] === note[i]) continue;
        
        for(let j=i;j<i+3;j++){
            // 자기 포함해서 오른쪽 2개까지 변경 가능
            if(j ===reset.length) break;
            if(reset[j]=== 0 ) reset[j]=1;
            else reset[j]=0;
        }
        cnt++;
    }
    console.log(cnt);