[LeetCode] 2578. Split With Minimum Sum

HyeLin·2023년 3월 10일
0
post-thumbnail

숫자를 두개로 나눠서 두 합이 최소값이 되도록!
ex)num = 4325 => 59
We can split 4325 so that num1 is 24 and num2 is 35, giving a sum of 59. We can prove that 59 is indeed the minimal possible sum.

✨ 풀이

var splitNum = function(num) {
  let arr=[...String(num)].map(num=> +num).sort((a,b)=>a-b)
  let arr1=[]
  let arr2=[]
  
  for(let i in arr){
    if(i % 2 ===1){
      arr1.push(String(arr[i]))
    }else{
      arr2.push(String(arr[i]))
    }
  }
  
  const num1=+arr1.map(num=>+num).join('')
  const num2=+arr2.map(num=>+num).join('')
  
  return num1+num2
  
};

✨ 해석

 let arr=[...String(num)].map(num=> +num).sort((a,b)=>a-b)
  • 숫자를 쪼갠 후, 오름차순으로 정렬한다.
  let arr1=[]
  let arr2=[]
  
  for(let i in arr){
    if(i % 2 === 1){
      arr1.push(String(arr[i]))
    }else{
      arr2.push(String(arr[i]))
    }
  }
  • 첫번째 수가 가장 작기 때문에, 홀수번째 숫자들로 arr1에 넣고 짝수번째 수들은 arr2에 넣어준다.
  • 앞자리가 작아야 합이 작기 때문에!
  
  const num1=+arr1.map(num=>+num).join('')
  const num2=+arr2.map(num=>+num).join('')
  
  return num1+num2
  • number 형태로 바꾸고 join으로 합친다! 다시 number 형태로 바꿔준다.
  • 둘을 더해준다!
profile
개발자

0개의 댓글