Python

[Python/프로그래머스] 12931_자릿수 더하기 - 재귀 함수

SDeveloper 2020. 4. 2. 22:18
반응형

 

 

[문제]

문제 설명

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

 

제한사항

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


입출력 예

N

answer

123

6

987

24

 

입출력 예 설명

입출력 예 #1
문제의 예시와 같습니다.

입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.

 

 

[1차 풀이]

- 숫자형은 각 자리수마다 iterator로 뽑아낼 수 가 없어서 str로 변형 후 int로 하나씩 더해주었다.

 

def solution(n):
    return sum([int(num) for num in str(n)])

 

 

[2차 풀이]

- 10미만의 수는 그대로 리턴하고 10이상의 수는 10으로 나눈 나머지만 남긴 상태로 재귀 함수를 이용하여 계속 10보다 작은 수를 구하여 더한다

 

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

 

 

[링크]

https://programmers.co.kr/learn/courses/30/lessons/12931

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형