본문 바로가기

Algorithm/Inflearn

[Python/알고리즘] 인프런 자릿수의 합

문제 출처

N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력
하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를
꼭 작성해서 프로그래밍 하세요


풀이코드

n = int(input())
a = list(map(int, input().split()))
def digit_sum(x):
    sum = 0 
    while x>0:
        sum += x%10
        x = x//10
    return sum
max = 0
for x in a: 
    tot = digit_sum(x)
    if tot > max:
        max = tot
        res = x
print(res)

코드설명

  1. sum에 몫이 아닌 나머지로 넣어, 거꾸로 정렬해서 일의 자리부터 더함
  2. 그 후 x에 몫을 남기고 0보다 클때까지 반복하여 원소들의 합을 짜는 def를 만듬
  3. 자릿수의 합이 최대값을 찾아서 그 값의 x인 자연수 출력

기타사항

## string을 이용한 함수
def digit_sum(x):
  sum = 0
  for i in str(x):
    sum += int(i)
  return sum
반응형