본문 바로가기

파이썬 알고리즘 풀이

6) 자릿수의 합

문제

N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요.

 

조건

각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요.

 

제한사항

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

자릿수의 합이 최대인 자연수를 출력한다. 자릿수의 합이 같을 경우 입력순으로 먼저인 숫자 를 출력합니다.

 

문제풀이

def digit_sum(x):
  ans=0
  while x > 0:
    ans+=x%10
    x//=10

  return ans

N = int(input())
a = list(map(int, input().split()))

dic={}
for i in a:
  m = digit_sum(i)
  dic[i] = m

b = [k for k, v in dic.items() if v == max(dic.values())]

print(b[0)

'파이썬 알고리즘 풀이' 카테고리의 다른 글

8) 뒤집은 소수  (0) 2021.10.19
7) 소수(에라토스테네스 체)  (0) 2021.10.19
5) 정다면체  (0) 2021.10.19
4) 대표값  (0) 2021.10.19
3) K번째 큰 수  (0) 2021.10.19