인프런 커뮤니티 질문&답변

vkfks8888님의 프로필 이미지
vkfks8888

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

8. 모든 아나그램 찾기(Hash & Sliding Window && Two Pointers Algorithm)

다른 방식으로 풀어봤습니다!

작성

·

126

0

안녕하세요! 수업 잘듣고있습니다 :)

이번 문제를 혼자 풀어보았는데 괜찮은 코드인지 궁금하여 질문 남깁니다. 항상 감사합니다!^^

function compareMaps(tmp, sH) {
  let sH1 = new Map();
  for (let [key, val] of sH) {
    sH1.set(key, val);
  }
  for (let x of tmp) {
    if (!sH1.has(x) || sH1.get(x) === 0) return 0;
    sH1.set(x, sH1.get(x) - 1);
  }
  return 1;
}
function solution(s, t) {
  let answer = 0;
  sH = new Map();
  let len = t.length;
  let tmp = s.slice(0, len);
  for (let x of t) {
    if (sH.has(x)) sH.set(x, sH.get(x) + 1);
    else sH.set(x, 1);
  }
  if (compareMaps(tmp, sH)) answer++;

  for (let i = len; i < s.length; i++) {
    tmp = tmp.slice(1);
    tmp = tmp + s[i];
    if (compareMaps(tmp, sH)) answer++;
  }
  return answer;
}
let a = 'bacaAacba';
let b = 'abc';
console.log(solution(a, b));

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네. 잘하신 코드입니다. 

vkfks8888님의 프로필 이미지
vkfks8888

작성한 질문수

질문하기