문제 출처
N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력
하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를
꼭 작성해서 프로그래밍 하세요
풀이코드
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 = 0
for x in a:
tot = digit_sum(x)
if tot > max:
max = tot
res = x
print(res)
코드설명
- sum에 몫이 아닌 나머지로 넣어, 거꾸로 정렬해서 일의 자리부터 더함
- 그 후 x에 몫을 남기고 0보다 클때까지 반복하여 원소들의 합을 짜는 def를 만듬
- 자릿수의 합이 최대값을 찾아서 그 값의 x인 자연수 출력
기타사항
## string을 이용한 함수
def digit_sum(x):
sum = 0
for i in str(x):
sum += int(i)
return sum
반응형