[알고리즘테스트] 자연수 뒤집어 더하기- JS

지냐킴·2022년 7월 21일
0

코딩테스트

목록 보기
17/28
post-thumbnail

✅문제 설명

자연수 n의 각 자리 숫자를 뒤집은 순서로 더해 출력하는 수식을 리턴해주세요. 예를들어 n이 12345이면 "5+4+3+2+1=15" 라는 문자열을 리턴합니다.

  • 제한 조건
    N의 범위 : 100,000,000 이하의 자연수
  • 입출력 예
    12345 "5+4+3+2+1=15"
    1532576 "6+7+5+2+3+5+1=29"
  • 지정 입력값
    718253 "3+5+2+8+1+7=26"

✅ 내 문제풀이

let n = 718253
//지정값 n을 두고

function solution(n){ 
	let numbers=n.toString().split('').map((str)=>Number(str)).reverse();
  // n을 string함수 사용해 문자열로 바꿔 주고 split함수로 문자열을 나눠 준 후  map함수로 문자열을 숫자로 바꾼후 reverse함수를 사용해 배열의 순서를 변환했다 이것을 numbers 라고 지정했다
  let sum= numbers.reduce((total,val) => total+val,0);
  // 총 합을 도출하기 위해 reduce 함수를 사용했다 

  return numbers.join('+')+"="+sum;
}
// 받은 numbers 값과 배열 사이마다 +를 넣기 위해 join함수를 사용해 넣어주고 = 과 sum값ㅇ르 넣어준다
  
console.log(solution(n))

.reduce()
배열의 각 요소를 순회하며 callback함수의 실행 값을 누적하여 하나의 결과값을 반환 합니다.
설명

const sum1 = numbers.reduce((accumulator, currentNumber) => accumulator + currentNumber);
const sum2 = numbers.reduce((total,val)=>total+val,0);

total 값에 val 값이 서로 더해지면서 총 합을 구한다
total 값의 초기값은 0으로
0 + 첫 value 3 = 3 다음
total 값 3 + 다음 value 값 5 = 8
이렇게 값을 쌓아가는 형식이다.

profile
코린이일기

0개의 댓글

관련 채용 정보