Wacky_Life

 

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

자연수 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의 범위 : 100,000,000 이하의 자연수

 

 

입출력 예

N answer
123 6
987 24

 

 

 

나의 코드

1
2
3
4
5
6
def solution(n):
    answer = 0
    n = [int(i) for i in str(n)]
    for i in range(len(n)):
        answer += n[i]
    return answer
cs

 

입력된 숫자를 int로 변환하여 리스트로 만든 후, 만든 리스트를 for 문을 돌려서 한 숫자씩 answer에 더한다.

 

 

 

다른 코드

1
2
def solution(number):
    return sum([int(i) for i in str(number)])
cs

 

위의 코드 처럼 입력 받은 숫자를 int로 변환 후 곧바로 sum에 넣으면 곧바로 합이 나온다.

 

 

1
2
3
4
def solution(number):
    if number < 10:
        return number;
    return (number % 10) + solution(number//10)
cs

 

재귀 함수 방식으로 만든 답이다.

4번째 줄 : 10으로 나눈 몫을 재귀 함수로 돌리고 10으로 나누었을 때의 나머지를 더한다.

3번째 줄 : 10으로 나눠진 숫자가 10보다 작을 때 재귀 함수를 탈출한다.

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading