[LeetCode] 539. Minimum Time Difference

Chobby·2026년 4월 2일

LeetCode

목록 보기
1051/1062

😎풀이

  1. 모든 시간을 분 형태로 치환
  2. 치환된 데이터를 오름차 순으로 정렬
  3. 모든 데이터를 순회하며, 최소 거리 갱신
  4. 반시계 방향을 고려해 마지막 요소와 첫 요소의 거리 계산
  5. 가장 짧은 시간거리를 반환
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
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글