본문 바로가기
Python/알고리즘

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

by 기록하는_사람 2022. 10. 22.

문제

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

 

입력

첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다. 각 자연수의 크기는 10,000,000를 넘지 않는다.

3
125 15232 97

 

출력

자릿수의 합이 최대인 자연수를 출력한다. 자릿수의 합이 같을 경우 입력순으로 먼저인 숫자 를 출력합니다.

97

 

N = int(input())

nums = list(map(int, input().split()))

def digit_sum(x):
    s = 0

    for i in str(x):
        s += int(i)

    return s

num = 0
max = 0
for n in nums:
    s = digit_sum(n)

    if s > max:
        max = s
        num = n

print(num)

📄 다른 풀이

N = int(input())

nums = list(map(int, input().split()))

def digit_sum(x):
    s = 0

    while x > 0:
        s += x % 10
        x = x // 10

    return s

num = 0
max = 0
for n in nums:
    s = digit_sum(n)

    if s > max:
        max = s
        num = n

print(num)

댓글