본문 바로가기

3. 알고리즘/프로그래머스

[python] 5. 자릿수 더하기

728x90

문제 설명

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

 

제한사항

- N의 범위: 100,000,000 이하의 자연수

 

입출력 예

N answer
123 6
987 24

 


 

나의 코드

def solution(N):
    answer = 0
    for i in range(len(str(N))):
        answer += int(str(N)[i])
    return answer

 

모범 답안

def solution(number):
    if number < 10:
        return number
    return (number % 10) + solution(number // 10) 

1. 재귀를 사용했다. 

2. 10으로 나누었을 때 나머지를 더해줬다. 즉, 일의 자리, 십의 자리, 백의 자리... 순으로 더해준다.

 

습관적으로 for문을 사용하게 된다... 다른 방법도 생각해보자!

 

 

 

 

728x90