728x90
반응형
어떤 양수 정수의 "digit degree(자릿수 차수)"를 찾는 문제입니다. 여기서 digit degree란 해당 수를 그 자릿수의 합으로 대체하여 한 자리 수에 도달할 때까지 몇 번이나 반복해야 하는지를 나타냅니다.
예를 들어, n = 5일 때, 이미 한 자리 수이므로 0번의 대체가 필요하므로 결과는 0입니다. n = 100일 때는 1 + 0 + 0 = 1이 되므로 1번의 대체가 필요하며, n = 91일 때는 9 + 1 = 10이 되고, 다시 1 + 0 = 1이 되므로 2번의 대체가 필요합니다.
이 문제의 목표는 어떤 수에 대해 digit degree를 찾아내는 함수를 작성하는 것입니다. 함수명이 solution으로 주어지며, 예를 들어 solution(5)는 0, solution(100)은 1, solution(91)은 2를 반환해야 합니다.
int solution(int n) {
int change_cnt = 0;
while(n>=10){
int ret = 0;
while(n>0){
ret += n%10;
n /= 10;
}
n = ret;
change_cnt++;
}
return change_cnt;
}
int solution(int n): 이 함수는 정수 n을 입력으로 받아서 해당 수의 digit degree를 계산합니다.
int change_cnt = 0;: change_cnt 변수는 digit degree를 나타내는 변수로, 초기값은 0입니다.
while(n >= 10) {: 주어진 수 n이 한 자릿수보다 크거나 같을 때까지 반복합니다.
int ret = 0;: ret 변수는 현재 수 n의 각 자릿수를 더한 결과를 저장합니다.
while(n > 0) {: 현재 수 n이 0보다 클 동안 반복합니다.
ret += n % 10;: 현재 수 n의 일의 자릿수를 ret에 더합니다.
n /= 10;: 현재 수 n의 일의 자릿수를 제거하여 다음 자릿수로 이동합니다.
n = ret;: 다 더한 결과인 ret를 n에 저장합니다.
change_cnt++;: 한 번의 대체 과정이 완료되었으므로 change_cnt를 1 증가시킵니다.
함수가 반복문을 통해 한 자릿수에 도달할 때까지 수행되고, 최종적으로 change_cnt를 반환합니다.
728x90
반응형
'CodeSignal' 카테고리의 다른 글
isBeautifulString (0) | 2023.12.31 |
---|---|
Bishop and Pawn (0) | 2023.12.30 |
longestDigitsPrefix (1) | 2023.12.30 |
arrayMaxConsecutiveSum (1) | 2023.12.24 |
growingPlant (0) | 2023.12.24 |