목차
자릿수의 합
N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요.
각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요.
▣ 입력설명
첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다.
각 자연수의 크기는 10,000,000를 넘지 않는다.
▣ 출력설명
자릿수의 합이 최대인 자연수를 출력한다. 자릿수의 합이 같을 경우 입력순으로 먼저인 숫자 를 출력합니다.
▣ 입력예제 1
3
125 15232 97
▣ 출력예제 1
97
나의 코드
def digit_sum(x):
s=0
while x>0:
s+=x%10
x=x//10
return s
n=int(input())
arr=list(map(int,input().split()))
res=0
M=0
for x in arr:
if M < digit_sum(x):
M=digit_sum(x)
res=x
print(res)
입력값들을 arr리스트에 넣은뒤 하나씩 꺼내 digit_sum함수에 넣어 반환받은 값을 비교해서 가장 큰값을 출력한다.
정답 코드
import sys
sys.stdin=open("input.txt", "r")
def digit_sum(x):
sum=0
while x>0:
sum+=x%10
x=x//10
return sum
n=int(input())
a=list(map(int, input().split()))
res=0
max=-2147000000
for x in a:
tot=digit_sum(x)
if tot>max:
max=tot
res=x
print(res)
'코딩테스트[파이썬] > 알고리즘 문제풀이 입문' 카테고리의 다른 글
[구현력 키우기] - 뒤집은 소수 (2) | 2024.02.05 |
---|---|
[구현력 기르기] - 소수의개수(에라토스테네스의 체) (0) | 2024.02.05 |
[구현력 기르기] - 정다면체 (0) | 2024.02.04 |
[구현력 기르기] - 대표값 (2) | 2024.02.04 |
[구현력 기르기] -k번째 큰수 (2) | 2024.02.04 |