N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력
하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를
꼭 작성해서 프로그래밍 하세요.
▣ 입력설명
첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다.
각 자연수의 크기는 10,000,000를 넘지 않는다.
▣ 출력설명
자릿수의 합이 최대인 자연수를 출력한다.
▣ 입력예제 1
3 1
25 15232 97
▣ 출력예제 1
97
n=int(input())
a=list(map(int, input().split()))
max=0
bb=[]
def digit_sum(x) :
cnt=0
x=str(x)
for i in x :
cnt+=int(i)
return(cnt)
for i in a :
b=digit_sum(i)
bb.append(b)
for i in a :
if max < digit_sum(i) :
max=digit_sum(i)
print(a[(bb.index(max))])
강사님이 각 자릿수의 합을 구한 방식은 나누기 십을 하면서 나머지를 더해 나가는 것이었다.
def digit_sum(x) :
sum=0
while x>0 L
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 #max가 된 경우, 그 때의 x!!
print(res)
str로 숫자를 변환하면 for로 따로 따로 떼놓을 수 있다
각 자릿수의 합을 한줄짜리 for문을 이용해서 간편하게 구하는 방법
def digit_sum(n):
return sum([int(i) for i in str(n)])