๐ŸŽฒ ๋ฐฑ์ค€ 2531๋ฒˆ ํšŒ์ „ ์ดˆ๋ฐฅ

Jeongeunยท2024๋…„ 3์›” 10์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
183/187

๐Ÿ“ฃ ๋ฌธ์ œ

๐Ÿ’ก Map ์‚ฌ์šฉ

์ฝ”๋“œ

const fs = require('fs'); 
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const [N, d, k, c] = input.shift().split(" ").map(Number);

let start = 0;
let end = k-1;
const map = new Map();
let max = 0;

map.set(`${c}`, 1);

const setAddMap = (num) => {
  if (map.has(num)) map.set(num, map.get(num) + 1);
  else map.set(num, 1);
};

for (let i = 0; i < k; i++) {
  setAddMap(input[i]);
}

max = map.size;

for (let i = 1; i < N; i++) {
  start++;
  end++;
  if (end === N) end = 0;
  if (map.get(input[start - 1]) > 1)
    map.set(input[start - 1], map.get(input[start - 1]) - 1);
  else map.delete(input[start - 1]);
  setAddMap(input[end]);
  max = Math.max(max, map.size);
}

console.log(max);

0๊ฐœ์˜ ๋Œ“๊ธ€