본문 바로가기
Algorithm/Programmers Lv.1

프로그래머스 코딩테스트 연습 - 자릿수 더하기

by newnu 2020. 9. 29.
반응형

문제 설명

자연수 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 하면 됩니다.

 

# 내 풀이

def solution(n):
    answer = 0
    l = len(str(n))-1

    while n!=0: # n이 0이 아니면 반복
        answer+= n // (10**l) # 제일 큰 자릿수부터 더하기
        n = n%(10**l) # 제일 큰 자릿수 제외한 나머지 부분 
        l-=1
    return answer

 

# 다른 사람의 풀이

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

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(sum_digit(123)));
# List Comprehension 사용
def sum_digit(number):
    return sum([int(i) for i in str(number)])
    
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(sum_digit(123)));

 

반응형