보통 0명 해결 정답률 0%

디지털 루트

한 자리 수가 남을 때까지 각 자리 숫자를 반복해서 더하세요.

배우게 될 내용

  • 한 자리가 남을 때까지 자릿수 합 반복하기
  • 안쪽 반복문과 바깥 종료 조건 결합하기
  • 9로 나눈 나머지를 쓰는 지름길 공식 알아보기

문제

원문 보기 (영어)

n의 각 자리 숫자를 모두 더하세요. 결과가 두 자리 이상이면, 그 숫자의 각 자리도 다시 더하세요. 한 자리 수가 남을 때까지 이 과정을 반복합니다.

digital_root(n)을 구현하세요.

입력

n: 양의 정수

출력

최종적으로 남은 한 자리 수를 반환하세요.

제약 조건

1 ≤ n ≤ 10¹⁸

예시

예시 1
입력:
n = 999

예상 출력:
expected = 9
입력:
long long n = 999;

예상 출력:
long long expected = 9;
입력:
long n = 999;

예상 출력:
long expected = 9;

설명

9 + 9 + 9 = 27, 그 다음 2 + 7 = 9.

예시 2
입력:
n = 38

예상 출력:
expected = 2
입력:
long long n = 38;

예상 출력:
long long expected = 2;
입력:
long n = 38;

예상 출력:
long expected = 2;

설명

3 + 8 = 11, 그 다음 1 + 1 = 2.

접근 방법

먼저 스스로 풀어 본 뒤 힌트를 하나씩 열어 보세요.

힌트 1

자릿수를 계속 더하면 결국 한 자리 수로 줄어듭니다.

힌트 2

값이 10보다 작아질 때까지 반복해서 합을 구하면 됩니다.

힌트 3

입력이 아주 클 수 있으니 주의하세요. 과정은 단순하지만, 자릿수를 여러 번 훑는 것이 핵심입니다.

예상 복잡도

시간 O(d log n), 추가 공간 O(1)

다른 사람의 풀이 보기

커뮤니티 솔루션

아직 공개된 풀이가 없습니다. 문제를 풀고 첫 풀이를 공유하세요.