인프런 커뮤니티 질문&답변
다른 풀이법 및 시간복잡도
작성
·
193
0
해당 문제를 이런식으로 풀게 되면 시간복잡도는 어떻게 되는 걸까요 ??
function solution(arr1, arr2) {
let answer = [];
for (let i = 0; i < arr1.length; i++) {
const findIdx = arr2.indexOf(arr1[i]);
findIdx === -1 ? null : answer.push(arr1[i]);
}
return answer.sort((a, b) => a - b);
}퀴즈
45%나 틀려요. 한번 도전해보세요!
투 포인터 또는 슬라이딩 윈도우 기법이 중첩 반복문보다 효율적인 주된 이유는 무엇일까요?
더 적은 메모리를 사용해서일까요?
코드가 더 짧아져서일까요?
대부분의 경우 O(N) 시간 복잡도를 달성해서일까요?
입력 데이터 크기에 영향을 받지 않아서일까요?
답변 1
0
김태원
지식공유자
안녕하세요^^
indexOf의 시간복잡도가 O(n)이면 위 코드는 O(n^2)의 시간복잡도를 갖습니다.
저는 indexOf의 시간복잡도를 O(n)으로 알고있습니다. 장담을 못하겠네요. 구글링해도 안나와서...






답변 감사합니다 :)