본문 바로가기

Programmers/Level 1

[Programmers] Level 1 - 자릿수 더하기 파이썬

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

 

코딩테스트 연습 - 자릿수 더하기

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출

programmers.co.kr

문제

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

입출력 예시

N(입력) answer(출력)
123 6
987 24

 


코드

def solution(n):
    answer = 0
    while True:
        if n == 0:
            break
        mod = n % 10
        answer += mod
        n = n // 10
    return answer

코드해석

입력된 자연수를 10으로 나눈 몫과 나머지로 문제를 풀었다.

만약 567이 입력이 되었을 때 10으로 나누게 된다면 몫은 56 나머지는 7이나오게 된다.

이후 56을 10으로 나누게 되면 몫은 5 나머지는 6으로 나뉜다.

이후 5를 10으로 나누게 되면 몫은 0 나머지는 5로 나뉜다.

이처럼 몫이 0이 될 때 까지 10으로 나누어 지금까지 나온 나머지를 더하게 되면 각 자리수의 합이 되게 된다. 

 

'Programmers > Level 1' 카테고리의 다른 글

[Programmers] Level 1 - 직사각형 별찍기 파이썬  (0) 2021.09.15