자릿수 더하기
문제 링크
나의 풀이
def solution(n):
n = list(str(n))
n_list = [int(i) for i in n]
sum = 0
for j in range(len(n_list)):
sum += n_list[j]
return sum
- 입력된 n을 문자열 리스트로 변환한 후 정수형 리스트로 변환 하였다. 그리고 각 요소들을 반복문을 통해 더해주었다. 코드를 작성하면서도 다소 비효율적이고 번거롭게 풀이한다는 느낌은 있었다. 내 스타일이 굳어지지 않도록 다양한 시도를 많이 해보자!!
다른 사람의 풀이
def sum_digit(number):
if number < 10:
return number;
return (number % 10) + sum_digit(number // 10)
- 함수의 재귀(recursion) 구조로 풀이한 방식이다.
number % 10은 number를 10으로 나눈 나머지 이고 이는 곧 number의 첫번째 자릿수를 의미한다. sum_digit(number // 10)
과 같이 sum_digit()함수가 2번째 작동되면 처음 number의 두번째 자릿수가 return 되고 결국엔 모든 자릿수의 합을 구할 수 있다. 재귀함수의 사용 예시를 잘 알아두자!