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

PMW·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개의 댓글