https://www.acmicpc.net/problem/15729
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 goal = input[1].split(" ").map(Number);
let arr = new Array(n).fill(0);
let cnt = new Array(n).fill(0);
let ans = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i] !== goal[i] && cnt[i] % 2 === 0) {
for (let j = 1; j <= 2; j++) {
cnt[i + j]++;
}
ans++;
}
if (arr[i] === goal[i] && cnt[i] % 2 === 1) {
for (let j = 1; j <= 2; j++) {
cnt[i + j]++;
}
ans++;
}
}
console.log(ans);
✔ 알고리즘 : 그리디
✔ 버튼이 눌릴때마다 배열을 갱신을 안해주는 것이 포인트이다.
✔ 버튼을 누르면 오른쪽의 두 개 버튼도 눌린다.
✔ 0으로 초기화된 배열과 쪽지에 적혀져있는 배열을 비교하며 다른 경우 버튼을 눌러준다.
✔ 난이도 : 백준 기준 실버 1