N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력하는 프로그램을 작성
def digit_sum(x):
sum = 0
x_str = str(x)
for i in range(len(x_str)): # for i in str(x)로 쓸 수 있음 -> i가 자릿 수 하나하나 접근
sum += int(x_str[i])
return sum
n = int(input())
list1 = list(map(int, input().split()))
max = 0
for i in range(n):
if digit_sum(list1[i]) > max:
max = digit_sum(list1[i])
a = i
print(list1[a])
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 = -2147000000
for x in a:
tot = digit_sum(x)
if tot > max:
max = tot
res = x
print(x)
나는 매개변수로 받은 x를 인덱스로 접근하기 위해
문자열로 바꿔서 자릿 수를 분리한 뒤, 다시 int형으로 바꿔서 더하도록 구현함.
해답을 보니 while문을 통해 자릿 수를 나누어 구함.
입력 값이 몇 자릿 수인지 모르니까 나누는 방법은 사용 못할 거라고 생각했는데, 높은 자릿 수부터가 아니라 10의 자리부터 나누면 되는거였음..