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

MinWoo Park·2021년 3월 25일
0

Algorithm

목록 보기
24/42
post-thumbnail

Algorithm Problem with Python — 24day


문제 설명 📖

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

제한사항

  • N의 범위 : 100,000,000 이하의 자연수

입출력 예

입출력 예 #1
문제의 예시와 같습니다.

입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.


문제 이해 🔑

인풋 정수를 자릿수로 구분하여 각 값을 더하는 문제입니다.
주어진 정수를 자릿수로 구분하여 나눌 수 있는지 파악하는 문제입니다.


수도 코드 ✍️

  1. 인풋 정수를 문자열로 바꿉니다.
  2. 반복문을 통해 문자열의 길이만큼 순회합니다.
  3. 순회할 때 i값으로 각 자릿수에 접근할 수 있으므로 누적하여 더합니다.
  4. 반복문이 끝나면 더한 값을 리턴합니다.

코드 작성 ⌨️

def solution(n):
    answer = 0
    n_str = str(n)
    for i in range(len(n_str)):
        answer += int(n_str[i])
    return answer

정리 😄

문제 풀이 후 다른 사람의 풀이를 보니 재귀함수를 통한 예시가 있어 가져왔습니다.

def sum_digit(number):
    if number < 10:
        return number;
    return (number % 10) + sum_digit(number // 10) 

이처럼 나머지 연산자와 몫만 구하는 나누기 연산자와 재귀함수를 이용한 풀이가 있었습니다.
난이도가 있는 문제에서는 재귀함수가 필요할 때가 있으므로 쉬운 문제에서 익혀두는 연습을 해야겠습니다.

profile
물음표를 느낌표로 바꾸는 순간을 사랑하는 개발자입니다.

0개의 댓글