sum_digit함수는 자연수를 전달 받아서 숫자의 각 자릿수의 합을 구해서 return합니다. 예를들어 number = 123이면 1 + 2 + 3 = 6을 return하면 됩니다. sum_digit 함수를 완성해보세요.

내코드

def sum_digit(number):
    '''number의 각 자릿수를 더해서 return하세요'''
    num_list = list(str(number))
    sum = 0
    for i in num_list:
        sum += int(i)
    return sum
        

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


타인의 코드

재귀 구조를 활용하여 일의 자리수는 나머지값으로 더하고 10의 자리수는 다시 sum_digit()함수를 사용하여 10으로 나눈 값을 더한다.

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

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


number를 str형태로 변환한 후 for loop를 이용해 돌면서 나온 각 자리수를 다시 숫자형으로 변환하고, 리스트 내장함수 sum()을 사용하여 각각의 값을 더해준다.

def sum_digit(number):
    return sum([int(i) for i in str(number)])

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

Julia Hwang

디발자를 꿈꾸는 웹개발자의 블로그입니다.