728x90
내용:
입력값
알고리즘:
숫자 n을 k번 반복한 수의 각 자리 수 합을 구한다(n의 각 자리 수 합*k와 동일)
그 수가 10보다 작은 한 자리 수의 경우 리턴
아니면 한 번 더 superDigit을 시행하여 한 자리 수가 나올 때까지 반복
def superDigit(n, k):
n=int(n) #문자열인 n을 정수로 변환
sum=0
while n>0:
sum+=n%10
n=int(n//10)
n=sum*k
if n<10: #재귀함수
return n
else:
return superDigit(n,1)
마지막에 return 없이 superDigit(n,1)만 써서 None이 계속 나왔었습니다
꼭 return 써주기
참고자료
재귀함수에 return 사용하지 않으면 None이 나오는 이유
사실 뭐가 다른 지 모르겠지만 문제가 안풀린다면 둘을 바꿉시다
https://www.acmicpc.net/board/view/91635
'코딩테스트 문제 > Hackerrank' 카테고리의 다른 글
[HackerRank] New Year Chaos (0) | 2023.05.27 |
---|---|
[HackerRanck] Grid Challenge (0) | 2023.05.15 |
[HackerRank] Caesar Cipher (0) | 2023.05.15 |