처음에 문자열을 보듯이 접근해 보았으나 코드를 써내려갈수록 굳이 ...? 란 생각이 들기 시작함.
그래서 인덱싱을 대신할 방법이 무엇이 있을까 생각하다가 자릿수 개념을 떠올림.
- 인덱싱 대신에 자릿수 개념을 이용함
- 1의 자리인 경우에는 참조만 당함!! <- base case
- 자릿수를 나타내기 위해 잠시 문자열로 형변환해서 len 함수를 이용함.
def sum_digits(n):
lens = len(str(n))-1
if lens == 0:
return n
return n // (10 ** lens) + sum_digits(n % (10 ** (lens)))
'알고리즘 > 문제 풀이' 카테고리의 다른 글
2021-10-07 이진탐색 재귀 반영환 (0) | 2021.10.11 |
---|---|
2021-10-07 리스트 뒤집기 반영환 (0) | 2021.10.11 |
2021-10-05 삼각수 반영환 (0) | 2021.10.11 |
2021-10-05 피보나치수열 반영환 (0) | 2021.10.11 |
2021-09-30 Bronze "8958" 반영환 (0) | 2021.09.30 |