
😎풀이
- 모든 시간을 분 형태로 치환
- 치환된 데이터를 오름차 순으로 정렬
- 모든 데이터를 순회하며, 최소 거리 갱신
- 반시계 방향을 고려해 마지막 요소와 첫 요소의 거리 계산
- 가장 짧은 시간거리를 반환
function findMinDifference(timePoints: string[]): number {
const n = timePoints.length
const minutePoints = timePoints.map(timeToMin)
const sorted = minutePoints.toSorted((a, b) => a - b)
let minDiff = Infinity
for(let cur = 0; cur < n - 1; cur++) {
const clockwise = sorted[cur + 1] - sorted[cur]
minDiff = Math.min(minDiff, sorted[cur + 1] - sorted[cur])
}
return Math.min(minDiff, 1440 + sorted[0] - sorted[n - 1] )
};
function timeToMin(time: string) {
const [hour, min] = time.split(":").map(Number)
return hour * 60 + min
}