강의 듣기에 앞서 지난 시간
선생님께 배운 슬라이딩 윈도우로 풀어봤습니다.
어떠한지 리뷰 부탁드리겠습니다 :)
function compareMaps(map1, map2){
for(let [key, val] of map1){
if(map1.get(key)!==map2.get(key)) return 0;
}
return 1;
}
function solution(s, t){
let answer = 0;
let sL = s.length, tL = t.length;
let tH = new Map(), sH = new Map();
for(let x of b){
if(tH.has(x)) tH.set(x, tH.get(x)+1);
else tH.set(x, 1);
}
for(let i=0;i<tL;i++){
let x = s[i];
if(sH.has(x)) sH.set(x, sH.get(x)+1);
else sH.set(x, 1);
}
answer += compareMaps(tH, sH);
for(let i=tL;i<sL;i++){
let x = s[i], y = s[i-tL];
if(sH.has(x)) sH.set(x, sH.get(x)+1);
else sH.set(x, 1);
sH.set(y, sH.get(y)-1);
answer += compareMaps(tH, sH);
}
return answer;
}