[LeetCode] 2562. Find the Array Concatenation Value

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

ex) nums = [5,14,13,8,12]
Output: 673
첫번째 값과 마지막 값을 붙이면 512, 그리고 그 값들을 제거한다.
그 다음은 148, 두 값을 제거 하면 하나의 값이 남는다.
13은 그냥 더해준다. (성의 없는 설명 아님...😂)

✨ 풀이

var findTheArrayConcVal = function(nums) {
   let arr=[]
   const stringNums=nums.map(item=> String(item))
  
  while(stringNums.length>1){
    const first=stringNums.shift()
    const last=stringNums.pop()  
    arr.push(first+last)
    }
  
    if(stringNums.length===1){
      arr.push(...stringNums)
    }
  
   const result=arr.map(nums=> +nums)
   return result.reduce((a,b)=> a+b)
};

✨ 해석

   let arr=[]
    const stringNums=nums.map(item=> String(item))
  
  while(stringNums.length>1){
    const first=stringNums.shift()
    const last=stringNums.pop()  
    arr.push(first+last)
    }
  • 배열의 수들을 string 형태로 바꿔주고, 그 배열의 갯수가 하나 이상 남아있을 때까지 반복문을 돌린다.
  • 첫번째 값과 마지막값을 제거하면서 더해주고 그 값을 빈 배열에 넣어준다.
    if(stringNums.length===1){
      arr.push(...stringNums)
    }
  
  • 다 제거된 후, 배열의 값이 한개가 남았을 때도 배열 arr에 넣어준다.
   const result=arr.map(nums=> +nums)
   return result.reduce((a,b)=> a+b)
  • arr의 값들을 수 형태로 다시 바꿔주고 reduce를 이용하여 배열의 총합을 구했다.
profile
개발자

0개의 댓글