連続した要素の区間 (paizaランク B 相当)
解答例
問題文の、
a_l から a_{l + k - 1 }までのすべての要素が x である l ( 1 ≦ l ≦ n − k + 1 )の個数を答えてください。
に基づいて実装します。
sliceとeveryを使いました。
const fs = require("fs");
const input = fs.readFileSync("/dev/stdin", "utf-8").trim();
const lines = input.split("\n");
const [n, x, k] = lines[0].split(" ").map(Number);
const a = lines[1].split(" ").map(Number);
let count = 0;//x が k 個連続で並んでいる区間の個数
for (let l = 0; l < n - k + 1; l++) { //l ( 1 ≦ l ≦ n − k + 1 )
if (a.slice(l, l + k).every(v => v === x)) {
count += 1;
}
}
console.log(count);