😎풀이

  1. arr 오름차 순 정렬
  2. arr 순회
    2-1. 이전 요소와 현재 요소의 차의 절댓값 확인
    2-2. 만약 최소 차이라면, 현재 요소부터 새로 기록
    2-3. 최소 차이가 아니라면, 생략
  3. 오름차 순으로 정렬된 최소 간격 배치 요소를 배열 형태로 반환
function minimumAbsDifference(arr: number[]): number[][] {
    const n = arr.length
    const sortedArr = arr.toSorted((a, b) => a - b)
    let result = []
    let minGap = Infinity
    for(let i = 1; i < n; i++) {
        const prev = sortedArr[i - 1]
        const cur = sortedArr[i]
        const curGap = Math.abs(cur - prev)
        if(curGap < minGap) result = []
        minGap = Math.min(minGap, curGap)
        if(curGap === minGap) result.push([prev, cur])
    }
    return result
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글