
😎풀이
target이 words에 없는 경우 -1 반환
startIndex가 words에서 target의 인덱스인 경우 이동 불필요로 0의 거리 반환
- 현재 위치부터 이전과 다음 위치를 탐색
3-1. 전파해나가며, 거리를 누산 및 target 요소 탐색
3-2. 탐색에 필요한 최소 거리 반환
function closestTarget(words: string[], target: string, startIndex: number): number {
const targetIdx = words.indexOf(target)
if(targetIdx === -1) return -1
if(words[startIndex] === target) return 0
const n = words.length
let forward = (startIndex + 1) % n
let backward = (startIndex - 1 + n) % n
let distance = 1
while(true) {
if(words[forward] === target) return distance
if(words[backward] === target) return distance
forward = (forward + 1) % n
backward = (backward - 1 + n) % n
distance++
}
return distance
};