자연수 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
하면 됩니다.
import java.util.*;
public class Solution {
public int solution(int n) {
int sum = 0;
String strN = n+"0";
int[] arrN = new int[strN.length()];
//for문을 이용해 한 자릿수씩 arrN에 저장한다.
//arrN에 들어있는 값을 for문을 이용해 합계를 구한다.
for ( int i = 0; i < strN.length(); i++ ) {
arrN[i] = n%10;
n /= 10;
sum += arrN[i];
}
return sum;
}
}
int sum = 0;
String strN = n+"0";
int[] arrN = new int[strN.length()];
각 자릿수의 합계를 저장할 sum
을 0으로 초기화한다.
외부에서 입력받은 n
의 길이를 알아보기 위해 문자열 0
을 n
에 더해 n
의 숫자를 문자열로 변환하여 strN
에 저장한다.
위에서 문자열로 변환한 n
의 크기를 나타내는 strN.length()
만큼의 크기를 가진 arrN
배열을 선언한다.arrN
배열은 n
의 자릿수 하나하나를 저장할 배열이다.
.length()
는 문자열의 크기를 구하는 것이고, .length
는 배열의 크기를 구하는 것이니 헷갈리지 않도록 하자.
//for문을 이용해 한 자릿수씩 arrN에 저장한다.
//arrN에 들어있는 값을 for문을 이용해 합계를 구한다.
for ( int i = 0; i < strN.length(); i++ ) {
for문
을 0
부터 strN.length()
만큼 반복해 arrN[i]
에 들어있는 자릿수들을 다 읽되, 불필요한 반복을 하지 않도록 한다.
arrN[i] = n%10;
n /= 10;
arrN
에 n
을 10
으로 나눈 나머지를 저장해, 마지막 자릿수를 입력한다.
입력한 자릿수는 10
으로 나눈 몫을 다시 n
에 저장함으로써 다음 자릿수를 저장할 수 있도록 한다.
sum += arrN[i];
}
return sum;
}
}
자릿수가 들어있는 arrN
배열의 값을 sum
에 누적한다.
for문
이 종료된 후 자릿수의 합계인 sum
을 return
한다.