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

Joy Lee님의 프로필 이미지
Joy Lee

작성한 질문수

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

4. 문자거리

for 문 안에 indexOf를 쓰면 시간복잡도가 어떻게 될까요?

작성

·

822

0

// 가장 짧은 문자거리
function solution(str, al) {
  const answer = [];
  let prev = str.indexOf(al);

  for (let i = 0; i < str.length; i++) {
    let next = str.indexOf(al, i);
    let space_l = Math.abs(i - prev);
    let space_r = Math.abs(i - next);

    if (space_l > space_r) {
      prev = next;
    }

    answer.push(Math.min(space_l, space_r));
  }

  return answer.join(' ');
}

console.log(solution('teachermode', 'e'));

저는 이렇게 코드를 작성했습니다.,

for 문을 돌면서 i 번째 이후에 있는 'e'의 인덱스 값을

찾아서 비교하는 방식으로 코드를 작성했는데

이경우는 시간복잡도가 O(n) 일까요 O(n^2)일까요?

그리고 혹시 코드 반례가 있을지 확인해주시면 감사드리겠습니다!!

답변 1

0

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

안녕하세요^^

indexof 의 시간복잡도가 O(n)이니까 전체적으로는 O(n^2)입니다.

Joy Lee님의 프로필 이미지
Joy Lee

작성한 질문수

질문하기