정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
class Solution {
public int solution(int n) {
int answer = 0;
return answer;
}
}
입출력 예 #1
입출력 예 #2
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
// 자연수 n을 문자열 s로 변환
String s = Integer.toString(n);
for (int i = 0; i < s.length(); i++) {
// 문자열 s를 int 타입 정수로 변환하고, 모두 더한다
answer += Integer.parseInt(s.substring(i, i + 1));
}
return answer;
}
}
숫자 -> 문자 -> 숫자로 변환하는 방법
substring() : 문자열 잘라내기
참고: 가운데 글자 가져오기
class Solution {
public int solution(int n) {
int answer = 0;
while (n > 0) {
answer += n % 10;
n /= 10;
}
return answer;
}
}
정수 / 정수 = 정수 를 이용해서, 한 자리수만 남겨서 더하는 방식
10의 나머지를 구하는 연산자로 뒷자리부터 따로 떼어낸다. 일의 자리부터 더한다
n 을 10으로 나눠줌으로써, 좀 전에 사용된 일의 자릿수를 n에서 날린다.
주의!
answer += n % 10; 에서 계산에 사용된 n이
n /= 10; 에 있는 n으로 이어지지 않음.
n 에 따로 조치를 취하지 않는 한 n의 값은 처음과 그대로다.