[LeetCode] 1200. Minimum Absolute Difference

HyeLin·2023년 4월 26일
0
post-thumbnail

Input: arr = [3,8,-10,23,19,-4,-14,27]
Output: [[-14,-10],[19,23],[23,27]]
배열 중 가장 차가 적은 배열 쌍을 오름차순으로 반환

✨ 풀이

var minimumAbsDifference = function(arr) {
  const ascend=arr.sort((a,b)=>a-b)
  const diff=[]
  const result=[]
  
  for(let i=0;i<arr.length-1;i++){
    diff.push(ascend[i+1]-ascend[i])
  }
  
  const min=Math.min(...diff)
  
  for(let i=0;i<arr.length-1;i++){
    if(ascend[i+1]-ascend[i] === min){
      result.push([ascend[i+1],ascend[i]].sort((a,b)=>a-b))
    }
  }
  
	return result
};

✨ 해석

 const ascend=arr.sort((a,b)=>a-b)
 const diff=[]
 
   for(let i=0;i<arr.length-1;i++){
     diff.push(ascend[i+1]-ascend[i])
  }
  
  • 배열을 오름차순으로 정리 해주고, 옆의 값과의 차를 diff 라는 배열에 넣어주었다. 그 배열에는 차들만 정리되어 있게 만들어준다!
    const min=Math.min(...diff)
  • 차 들만 있는 배열에서 최소값을 구한다. 이 값을 이용하여 배열 쌍을 만들어줘야한다.
  const result=[]
 
  for(let i=0;i<arr.length-1;i++){
    if(ascend[i+1]-ascend[i] === min){
      result.push([ascend[i+1],ascend[i]].sort((a,b)=>a-b))
    }
  }
  
	return result
  • 다시 반복문을 돌려서, 옆의 값과 차가 min 값과 같으면 빈 배열에 오름차순으로 넣어주었다. 끝!
profile
개발자

0개의 댓글