/**
* @param {string} blocks
* @param {number} k
* @return {number}
*/
var minimumRecolors = function(blocks, k) {
const nBlk = 'B'.repeat(k)
if(blocks.includes(nBlk)) return 0
let min = k
let current = 0
let start = 0
for(let end=0; end<blocks.length; end++){
if(blocks[end] === 'W') {
current++;
}
if(end+1>=k) {
min = Math.min(min, current)
if(blocks[start++] === 'W') {
current--
}
}
}
return min
};
'B'가 k번 연속된 string이 있으면 0 return
sliding Windos 활용한 풀이
return할 min값, 현재 최소값인 current, length가 k인걸 맞추기 위한 start 변수를 설정하고
blocks를 순회하며, 문자가 'W'일때 curruent ++, end+1이 k 이상일때부턴 start값이 W면 current--와 start++