스파르타코딩클럽 - 항해99/항해99 Chapter2 - 알고리즘 기초
알고리즘 - 자릿수 더하기 (21.11.12)
Ming
2021. 11. 12. 21:33
- 자릿수 더하기
문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
- N의 범위 : 100,000,000 이하의 자연수
입출력 예
N answer
입출력 예 설명
123 | 6 |
987 | 24 |
입출력 예 #1
문제의 예시와 같습니다.
입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
내 풀이
일단 자연수 n을 toString()을 통해 문자열로 변환한 후에 for문을 통해 각각의 요소에 접근하여 prsenInt를 통해 다시 숫자로 변환하며 각각의 값을 answer에 더해줬다.
문자열로 변환해줄때
let nStr = n.toString() 말고도
let nStr = n + '' 이런식으로도 변환이 가능하다.
다른 사람의 풀이
나도 처음엔 숫자로 풀어보고 있었는데 하다가 실패했었는데 다른 사람의 풀이를 보니 어떤 부분에서 문제였는지를 알 수 있었다.
여기서 나는 나머지를 더해주기만 했었었는데 나머지를 더해주고
n = Math.floor(n/10) 을 통해 n을 10으로 나눴을때의 소수점을 버려주는 역활을 하여 백의자리, 천의자리에 있던 숫자들이 계속 반복될 수 있도록 하였다.
그리고 여기선 do while문을 사용하였다.
do while문
do {
조건식이 참일 경우 반복적으로 실행 할 실행문
} while (조건식)