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

개발잘하기프로젝트·2020년 11월 23일
0
post-thumbnail

🤔 문제

프로그래머스 - 자릿수 더하기

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

❗️ 제한

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

💡 접근

solution 1toString(), map(), reduce() 메서드를 이용해서 해결했다.
solution 2String(), map(), reduce() 메서드를 이용해서 해결했다.
solution 3 ``(템플릿 리터럴)map(), reduce() 메서드를 이용해서 해결했다.
solution 4 ``(템플릿 리터럴)reduce() 메서드를 이용해서 해결했다.

solution 4map()메서드 대신에 reduce()메서드에서 a, b의 값에 +로 타입변환을 하면서 바로 더해주는 방법을 이용했다.

🧑🏻‍💻 코드

// solution 1
function solution(n) {
  const sum = [...n.toString()].map(num => +num).reduce((a, b) => a + b, 0);
  return sum;
}

// solution 2
function solution(n) {
  const sum = [...String(n)].map(num => +num).reduce((a, b) => a + b, 0);
  return sum;
}

// solution 3
function solution(n) {
  const sum = [...`${n}`].map(num => +num).reduce((a, b) => a + b, 0);
  return sum;
}

// solution 4
function solution(n) {
  const sum = [...`${n}`].reduce((a, b) => +a + +b, 0);
  return sum;
}

solution(103); // 4

📝 참고

MDN - String
MDN - Number.prototype.toString()

String
String 전역 객체는 문자열(문자의 나열)의 생성자이다. 문자열은 String 전역 객체를 직접 사용하여 생성할 수 있다. String(thing)에서 매개변수 thing은 문자열로 변환할 아무 값을 넣으면 된다.

toString()
toString() 메서드는 특정한 Number 객체를 나타내는 문자열을 반환한다.
numObj.toString([radix])에서 radix에 진수를 나타내는 값을 넣어주고 생략할 경우 임의의 10진수로 가정하게 된다.

var count = 10;
console.log(count.toString()); // '10'

var x = 6;
console.log(x.toString(2)); // '110'
profile
🏠 ☕️ 🎞 🌿 + 🧑🏻‍💻

0개의 댓글