본문 바로가기
알고리즘?/기본2

6. 자릿수의 합

by 몰라닉네임 2023. 5. 5.

*본 문제는 인프런 김태원 강사님의 파이썬 알고리즘 문제풀이 강의에 기반합니다.  

 

문제 자릿수의 합 

N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력하는 프로그램을 작성하시오. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요

 

-입력설명

첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다. 각 자연수의 크기는 10,000,000를 넘지 않는다.

 

-출력설명

자릿수의 합이 최대인 자연수를 출력한다. 

 

-입력예제1

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