
😎풀이
시작점
과 종료점
이 동일한 경우 이동 거리는 없음
- 시계 방향과 반시계 방향의 거리 중 짧은 거리를 택함
2-1. 시작 범위와 종료 범위로 분할
2-2. 전체를 순회하며 합계를 구하고 그 중 시계 범위 내 요소의 합을 뺌
2-3. 위 연산으로 시계 방향의 합을 구함
- 최소 거리 반환
function distanceBetweenBusStops(distance: number[], start: number, destination: number): number {
if(start === destination) return 0
let clockWise = 0
let counterClockWise = 0
let s = start < destination ? start : destination
let e = start < destination ? destination : start
for(let i = 0; i < distance.length; i++) {
counterClockWise += distance[i]
if(i >= s && i < e) clockWise += distance[i]
}
counterClockWise -= clockWise
return Math.min(clockWise, counterClockWise)
};