반응형
문제 설명
자연수 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)));
반응형
'Algorithm > Programmers Lv.1' 카테고리의 다른 글
프로그래머스 코딩테스트 연습 - 이상한 문자 만들기 ( split( ) 함수) (0) | 2020.09.29 |
---|---|
프로그래머스 코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 ( reverse( ) / reversed( ) 함수 ) (0) | 2020.09.29 |
프로그래머스 코딩테스트 연습 - 정수 제곱근 판별 (0) | 2020.09.29 |
프로그래머스 코딩테스트 연습 - 키패드 누르기 (1) | 2020.09.13 |
프로그래머스 코딩테스트 연습 - 문자열 내 마음대로 정렬하기(lambda, sorted 함수) (2) | 2020.08.26 |