본문 바로가기

Algorithm/Python

006 - 자릿수의 합

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

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

 

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

 

입력예제 1

3
125 15232 97

 

출력예제 1

97

 

import sys
sys.stdin = open('in5.txt', 'rt')
n = int(input())
m = list(map(int, input().split()))
max_sum = 0
max_num = 0


def digit_sum(x): # 재귀함수로 처리
    a = x % 10
    b = x//10
    if (b > 0):
        return a+digit_sum(b)
    else:
        return a


for i in range(n):
    tot = digit_sum(m[i])
    if tot > max_sum:
        max_sum = tot
        max_num = m[i]
print(max_num)

 

import sys
#sys.stdin = open('in1.txt', 'rt')
n = int(input())
m = list(map(int, input().split()))
max_sum = 0
max_num = 0

        
def digit_sum(x): # str로 처리
    tmp = str(x)
    sum = 0
    for i in tmp:
        sum += int(i)
    return sum     


for i in range(n):
    tot = digit_sum(m[i])
    if tot > max_sum:
        max_sum = tot
        max_num = m[i]
print(max_num)

 

import sys
n = int(input())
m = list(map(int, input().split()))
max_sum = 0
max_num = 0


def digit_sum(x):  # %, // 몫과 나머지 처리
    sum = 0
    while x > 0:
        a = x % 10
        x = x // 10
        sum += a
    return sum


for i in range(n):
    tot = digit_sum(m[i])
    if tot > max_sum:
        max_sum = tot
        max_num = m[i]
print(max_num)

'Algorithm > Python' 카테고리의 다른 글

008 - 뒤집은 소수  (0) 2023.08.02
007 - 소수(에라토스테네스 체)  (0) 2023.08.02
005 - 정다면체  (0) 2023.07.27
004 - 대표값  (0) 2023.07.26
003 - K번째 큰 수  (0) 2023.07.26