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

유인님의 프로필 이미지
유인

작성한 질문수

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

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

new Map으로 계속 초기화하면 많이 비효율적일까요??

작성

·

179

0

안녕하세요 선생님!

이중 루프로 풀다가 O(N)으로 풀어보려고 해봤는데요..

new Map으로 반복문 안에서 계속 초기화 해주는 건 너무 비효율 적일까요? 

function solution2(st) {
  let answer = 0;
  let lt = 0,
    rt = 0;
  let map1 = new Map();

  for (const i of t) {
    if (map1.has(i)) {
      let val = map1.get(i);
      map1.set(i, ++val);
    } else map1.set(i1);
  }

  let map2 = new Map(map1);

  while (1) {
    if (rt > s.lengthbreak;

    if (rt - lt === t.length && map2.size === 0) {
      answer++;
      map2 = new Map(map1);
      rt = ++lt;
    }

    if (!map2.has(s[rt])) {
      rt = ++lt;
      map2 = new Map(map1);
    } else {
      map2.delete(s[rt]);
      rt++;
    }
  }

  return answer;
}

답변 1

0

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

안녕하세요^^

잘 하신 코드입니다. 

이 영상 질문답변란에 제가 짠 O(n) 방식도 있으니 참조해보세요. 빨리 영상 교체를 하도록 하겠습니다.

유인님의 프로필 이미지
유인

작성한 질문수

질문하기