// 가장 짧은 문자거리
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)일까요?
그리고 혹시 코드 반례가 있을지 확인해주시면 감사드리겠습니다!!