[프로그래머스][LV.1] 자릿수 더하기 | python3

2025. 1. 15. 11:45프로그래머스/LV.1

 

문제 링크: 자릿수 더하기

 

문제 설명

문제 설명

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

제한사항
- N의 범위 : 100,000,000 이하의 자연수

 


문제 풀이

수를 문자열로 변환 후 한글자씩 루프돌려서 정수로 변환 후 더했다.

 

내코드

def solution(n):
    answer = 0
    n=str(n)
    for s in n:
        answer+=int(s)

    return answer코드

 

 


더보기

다른사람풀이

def sum_digit(number):
    '''number의 각 자릿수를 더해서 return하세요'''
    if number < 10:
        return number

    return number%10 + sum_digit(number//10)

재귀함수를 이용하여 푼 풀이라고 한다.

각 자리의 수는 결국 123 이라고 하면 1은 123//10**2를 해서 얻을 수 있다.

일의 자리는 10으로 나눈 나머지 이니 이건 따로 써주고 number를 10으로 나눈 수가 10보다 작아지기 전까지 계속 number // 10을 계속 해서 일의 자리만 더한다.

 

이런 생각을 하고 코드를 짤 수 있다는 게 대단하다. 이런 사고방식을 배우기 위해 가지고 왔다.

 

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

이건 한 줄 코드라 가지고 옴