[프로그래머스] Lv 1. 자릿수 더하기

morecodeplease·2024년 2월 29일
0

프로그래머스 Lv 1

목록 보기
7/19
post-thumbnail

🌭 문제 설명

  • 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
  • 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

🍗 제한 사항

  • N의 범위 : 100,000,000 이하의 자연수

🎁 입출력 예시

  • 1 + 2 + 3 = 6이므로 6을 return 하면 됩니다.
  • 9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.

😎 나의 풀이

function solution(n)
{
    return String(n).split('').reduce((acc, cur) => acc + cur * 1,0);
}

console.log(solution(123)); // 출력 : 6
console.log(solution(987)); // 출력 : 24

  • 입력받은 nString메서드로 문자열로 바꿔주고 split메서드로 배열로 바꿔 준 다음 reduce메서드로 배열의 처음부터 끝까지 누적해서 더한 값을 return 한다.
  • 곱하기 1을 함으로써 정수로 바꿔서 return한다.

🧵 다른 풀이

function solution(n){
    // 쉬운방법
    return (n+"").split("").reduce((acc, curr) => acc + parseInt(curr), 0)
}
  • 거의 유사한 방법이지만 이 풀이는 String메서드를 쓰지 않고 n + ""로 JS에서 덧셈 연산자 +를 사용할 때, 피연산자 중 어느 하나가 문자열이면 문자열이 아닌 다른 피연산자도 문자열로 타입이 변환되어 문자열을 합친 값이 반환되는 특성을 이용했다.
  • 나는 곱하기 1을 해서 정수로 바꿨지만 parseInt 메서드를 사용해서 정수로 바꿨다.

n +""의 방식으로 문자열로 바꾸는 방법을 새롭게 알게되었다!🎠

profile
Everyday's a lesson

0개의 댓글