강의

멘토링

로드맵

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

실눈의달검사님의 프로필 이미지
실눈의달검사

작성한 질문수

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

2. 공통원소구하기(Two Pointers Algorithm)

투포인터를 사용하지는 않았는데...

작성

·

284

1

function solution(arr1, arr2) {
        let answer = [];
        let temp_obj = {};
        const sum_arr = [...arr1, ...arr2];
        for (let i = 0; i < sum_arr.length; i++) {
          temp_obj[sum_arr[i]] = temp_obj[sum_arr[i]] + 1 || 1;
        }
        for (let key in temp_obj) {
          if (temp_obj[key] === 2) {
            answer.push(Number(key));
          }
        }
        return answer;
      }

      let a = [1, 3, 9, 5, 2];
      let b = [3, 2, 5, 7, 8];
      console.log(solution(a, b));

위 처럼 풀었는데 전개연산자를 사용할경우

시간복잡도가 안나와있어서 위와같이 풀면 시간복잡도가 어떻게 되는지 궁금합니다.

 

 

퀴즈

투 포인터 또는 슬라이딩 윈도우 기법이 중첩 반복문보다 효율적인 주된 이유는 무엇일까요?

더 적은 메모리를 사용해서일까요?

코드가 더 짧아져서일까요?

대부분의 경우 O(N) 시간 복잡도를 달성해서일까요?

입력 데이터 크기에 영향을 받지 않아서일까요?

답변 1

0

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

안녕하세요^^

O(n)으로 봐도 무방할 것 같습니다.

감사합니다

실눈의달검사님의 프로필 이미지
실눈의달검사

작성한 질문수

질문하기