inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

이중포문이지만 좀더 간결한 것 같아서 적어봅니다!

220

YEONGHUN KO
0

그 이전 강의의 함수를 이용해보았습니다!! 

      function anagramValidator(str, str2) {
        let sh = new Map();
        for (let letter of str) {
          if (sh.get(letter)) sh.set(letter, sh.get(letter) + 1);
          else sh.set(letter, 1);
        }

        for (let letter of str2) {
          if (!sh.has(letter) || sh.get(letter) < 0) return false;

          sh.set(letter, sh.get(letter) - 1);
        }

        return true;
      }


      function subAnagramFinder(str, str2) {
        const re = [];
        let subStr;
        for (let i = 0; i < str.length; i++) {
          subStr = str[i];
          for (let j = i + 1; j < i + str2.length; j++) {
            subStr += str[j];
          }
          // console.log(subStr);
          if (anagramValidator(subStr, str2)) re.push(subStr);
        }

        return re;
      }

답변 0