[프로그래머스] 자릿수 더하기

2024. 5. 25. 09:29개인활동/코테

반응형

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

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

    return answer

단순하게 문자열로 받아오고, 이를 하나하나 분리하여 int로 수정해 더해주는 과정을 거쳤다.

 

그러나. 다른사람의 코드를 보는 와중에 재귀로 푸는 사람을 발견.

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

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

 

나. 너무 생각없이 문제를 푸는 것 같아 반성하게 되는 것 같다.

 

먼저 10으로 나눴을 때의 나머지 = 1의 자리 수

그리고 10으로 나눴을 때의 몫 = n의 자릿수가 될 것이고,

이를 계속해서 반복해 더해주는 과정을 거치게 된다.

 

wowowoowowowo 어떻게 이런 생각을....

 

앞으로는 좀 더 고민해보고 문제를 풀자...

 

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

그리고 또 다른 분, 리스트로 받아 sum을 해주시는 경우도 있었다.

아! 이건 어제 스터디 하며 들었던 것인데, 다음에 꼭 시도해봐야겠다.

반응형