N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요.
첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개 의 자연수가 주어진다. 각 자연수의 크기는 10,000,000를 넘지 않는다.
3
125 15232 97
자릿수의 합이 최대인 자연수를 출력한다. 자릿수의 합이 같을 경우 입력순으로 먼저인 숫자를 출력합니다.
97
def digit_sum(x):
sum = 0
while x > 0:
sum += x % 10
x = x // 10
return sum
이 부분이 핵심포인트다. x의 몫이 0에 가까워질 때까지 x를 10으로 나눴을 때 나머지 값을 sum에 더해주면 자릿수의 합이 나온다.
import sys
sys.stdin=open("input.txt","r")
N = int(input())
num = list(map(int, input().split()))
print(num)
# 1단계 : 예를 들어 125를 1,2,5로 분리하기
str_list = []
for n in num:
str_list.append(list(str(n)))
print(str_list)
# 2단계 : 각 자리수 문자열을 int타입으로 만들어서
# 더한 값을 다시 sum_list에 넣어주기
sum_list=[]
sum = 0
for num_list in str_list:
sum = 0
for n in num_list:
sum += int(n)
sum_list.append(sum)
# print(num)
print(sum_list)
# 3단계 : 자릿수의 합 중에 최대값 구하기
max = 0 #최대값 구할 변수
midx = 0
for idx, i in enumerate(sum_list):
if i > max:
max=i
midx=idx
print(num[midx])
import sys
sys.stdin=open("input.txt","r")
N = int(input())
num = list(map(int, input().split()))
# print(num)
str_list = []
sum_list=[]
def digit_sum(x):
sum = 0
for num_list in str_list:
sum = 0
for n in num_list:
sum += int(n)
sum_list.append(sum)
for n in num:
str_list.append(list(str(n)))
digit_sum(n)
# print(str_list)
# print(num)
# print(sum_list)
max = 0
midx = 0
for idx, i in enumerate(sum_list):
if i > max:
max=i
midx=idx
print(num[midx])
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
for x in a:
ja = digit_sum(x)
if ja > max:
max = ja
res = x
print(res)