*본 문제는 인프런 김태원 강사님의 파이썬 알고리즘 문제풀이 강의에 기반합니다.
문제 자릿수의 합
N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력하는 프로그램을 작성하시오. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요
-입력설명
첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다. 각 자연수의 크기는 10,000,000를 넘지 않는다.
-출력설명
자릿수의 합이 최대인 자연수를 출력한다.
-입력예제1
3
125 15232 97
-출력예제1
97
풀이
125 (1+2+5=8), 15232(13), 97(16)
비교하고 97출력
import sys
sys.stdin=open("input.txt", "rt")
n=int(input())
a=list(map(int, input().split()))
def digit_sum(x):
sum=0
while x>0:
sum=x%10 #나머지를 더하고
x=x//10 # X는 10으로 나눈 몫으로 바뀐다. ex) 125 12 1
return sum
max=-2147000000
for x in a:
tot=digit_sum(x)
if tot>max:
max=tot
res=x
print(res)
아래는 str
import sys
sys.stdin=open("input.txt", "rt")
n=int(input())
a=list(map(int, input().split()))
def digit_sum(x):
sum=0
for i in str(x):
sum+=int(i)
return sum
max=-2147000000
for x in a:
tot=digit_sum(x)
if tot>max:
max=tot
res=x
print(res)
'알고리즘? > 기본2' 카테고리의 다른 글
10. 점수계산 (0) | 2023.05.06 |
---|---|
8. 뒤집은 소수 (1) | 2023.05.06 |
5. 정다면체 (0) | 2023.05.05 |
4. 대표값 eumerate() (1) | 2023.05.04 |
3. k번째 큰수 set() (0) | 2023.05.04 |