본문 바로가기
프로그래머스/lv1

[12931] 자릿수 더하기 python3

반응형

문제 설명

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

제한 사항

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

입출력 예 

N aswer
123 6
987 24

입출력 예 설명

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

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

문제 풀이

1. n을 문자열로 만든 후 i 를 반환해 더한다.

설명)  n을 문자열로 만들면 1, 2, 3이 차례대로 반환됨

def solution(n):
    answer = 0

    for i in str(n):
        answer+= int(i)
    print(answer)
    return answer
solution(123)

 

다른 사람 문제 풀이

1. 10보다 작으면 그 숫자를 리턴한다.

2. 10보다 클 때 재귀 함수를 이용해 나온 값을 모두 더해준다.

예 ) 123이라는 숫자가 처음에 들어올 경우 123%10 은 나머지가 3 + sum_digit(12 // 10 ) =1... sum_digit(2)=2 

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

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(sum_digit(123)));