[코딩테스트] 56. 9로 나눈 나머지

윤설안's avatar
Jul 30, 2025
[코딩테스트] 56. 9로 나눈 나머지

문제

💡
음이 아닌 정수를 9로 나눈 나머지는 그 정수의 각 자리 숫자의 합을 9로 나눈 나머지와 같은 것이 알려져 있습니다.
이 사실을 이용하여 음이 아닌 정수가
문자열number로 주어질 때, 이 정수를 9로 나눈 나머지를 return 하는 solution 함수를 작성해주세요.

제한사항

  • 1 ≤ number의 길이 ≤ 100,000
  • number의 원소는 숫자로만 이루어져 있습니다.
  • number는 정수 0이 아니라면 숫자 '0'으로 시작하지 않습니다.

예시

notion image

풀이

문자열에서 각 자리 숫자를 더해야 하는데, 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); } }
notion image
Share article

An's Blog