[LeetCode] 2515. Shortest Distance to Target String in a Circular Array

Chobby·2025년 11월 4일
1

LeetCode

목록 보기
750/760

😎풀이

  1. targetwords에 없는 경우 -1 반환
  2. startIndexwords에서 target의 인덱스인 경우 이동 불필요로 0의 거리 반환
  3. 현재 위치부터 이전과 다음 위치를 탐색
    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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글