문제
N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요.
입력
첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다. 각 자연수의 크기는 10,000,000를 넘지 않는다.
3 125 15232 97 |
출력
자릿수의 합이 최대인 자연수를 출력한다. 자릿수의 합이 같을 경우 입력순으로 먼저인 숫자 를 출력합니다.
97 |
답
N = int(input())
nums = list(map(int, input().split()))
def digit_sum(x):
s = 0
for i in str(x):
s += int(i)
return s
num = 0
max = 0
for n in nums:
s = digit_sum(n)
if s > max:
max = s
num = n
print(num)
📄 다른 풀이
N = int(input())
nums = list(map(int, input().split()))
def digit_sum(x):
s = 0
while x > 0:
s += x % 10
x = x // 10
return s
num = 0
max = 0
for n in nums:
s = digit_sum(n)
if s > max:
max = s
num = n
print(num)
'Python > 알고리즘' 카테고리의 다른 글
[Python/알고리즘] 뒤집은 소수 (0) | 2022.10.22 |
---|---|
[Python/알고리즘] 소수(에라토스테네스 체) (0) | 2022.10.22 |
[Python/알고리즘] 정다면체 (0) | 2022.10.21 |
[Python/알고리즘] 대표값 (0) | 2022.10.21 |
[Python/알고리즘] K번째 큰 수 (0) | 2022.10.21 |
댓글