문제
음이 아닌 정수를 9로 나눈 나머지는 그 정수의 각 자리 숫자의 합을 9로 나눈 나머지와 같은 것이 알려져 있습니다.
이 사실을 이용하여 음이 아닌 정수가
문자열
number
로 주어질 때, 이 정수를 9로 나눈 나머지를 return 하는 solution 함수를 작성해주세요.제한사항
- 1 ≤
number
의 길이 ≤ 100,000
number
의 원소는 숫자로만 이루어져 있습니다.
number
는 정수 0이 아니라면 숫자 '0'으로 시작하지 않습니다.
예시

풀이
문자열에서 각 자리 숫자를 더해야 하는데,
String
을 바로 더하는 것은 어렵기 때문에 먼저 각 문자를 char
로 추출했습니다.하지만
char + char
를 하면 문자 자체의 유니코드 값이 더해지기 때문에, 내가 원하는 숫자 값이 나오지 않습니다. 따라서 '0'
을 빼서 원하는 정수로 변환해주는 방식이 필요합니다.이때 반드시
0
이 아닌 '0'
처럼 작은 따옴표를 붙여야 합니다. 붙이지 않으면 문자 코드가 아닌 그냥 숫자 0으로 처리되어 의도한 결과가 나오지 않습니다.이렇게 변환한 숫자들을
answer
에 누적해서 더한 후, 마지막에 9
로 나눈 나머지 값을 출력합니다.public class Ex33 {
public static void main(String[] args) {
String number = "78720646226947352489";
int answer = 0;
for (int i = 0; i < number.length(); i++) {
char c = number.charAt(i);
int num = c - '0';
answer += num;
}
answer = answer % 9;
System.out.println(answer);
}
}

Share article