[BOJ] 15792 방탈출 | 그리디

Urther·2021년 12월 8일
0

알고리즘

목록 보기
26/41

0부터 일치해야하는 노트의 length만큼 반복한다.

  • 만약 자신 값과 같은 부분이 있다면 다음 검색 부분으로 넘어간다.
  • 만약 초기값 부터 다른 부분이 있다면 값을 변경시켜준다.

몇 번 값을 변경시켜주었는지 확인하면 된다.

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);
profile
이전해요 ☘️ https://mei-zy.tistory.com

0개의 댓글