digit_sum(x) 함수에서 x 를 String 으로 변환시켜 for 문을 통해 자연수의 각 자릿수에 접근하고, 누적 변수에 더할 때 다시 int 형으로 변환 시킨 후 더해주면 된다.
import sys
sys.stdin = open("input.txt","rt")
def digit_sum(x):
sum = 0
for i in str(x):
sum += int(i)
return sum
n = int(input())
numbers = list(map(int, input().split()))
result = []
for i in numbers:
result.append(digit_sum(i))
result_max = max(result)
for idx, value in enumerate(result):
if(result_max == value):
print(numbers[idx])
break
입력은 input.txt 파일로 받았다.
numbers를 리스트로 한번에 입력받고, result 라는 빈 리스트를 생성한다.
for 문으로 numbers 리스트 원소들을 하나씩 접근해서 digit_sum(i) 로 함수를 호출 하고, 함수 리턴값을 result 리스트에 저장한다.
max(result) 로 result 리스트의 최댓값을 구한다.(자릿수의 합 중 최댓값)
enumerate 로 result 를 인덱스(idx)와 값(value)에 모두 접근하고, result_max 와 value 가 같으면, numbers[idx] 를 출력한 후 반복문을 중단한다.(자릿수의 합이 최대인 자릿수 출력, 자릿수의 합이 같은 경우 입력순으로 먼저인 숫자 출력)