가자미의 개발이야기
[알고리즘] 자릿수의 합 본문
#문제:
N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요.
▣ 입력설명
첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다. 각 자연수의 크기는 10,000,000를 넘지 않는다.
▣ 출력설명
자릿수의 합이 최대인 자연수를 출력한다. 자릿수의 합이 같을 경우 입력순으로 먼저인 숫자 를 출력합니다.
▣ 입력예제 1
3
125 15232 97
▣ 출력예제 1
97
import sys
def digit_sum(x):
n=1
sum=0
while True:
if x//n==0:
n/=10
break
else: n*=10
while True:
k=x//n
x=x-k*n
sum+=k
if(n==1):
break
else: n/=10
return sum
N= int(input())
arr=list(map(int, input().split()))
sumArr=[]
for i in arr:
sum=digit_sum(i)
sumArr.append(sum)
max=0
for i in range(len(sumArr)):
if max<sumArr[i]:
max=sumArr[i]
output = sumArr.index(max)
print(arr[output])
#몰랐거나 검색했던 내용
1. 파이썬에서 몫 연산
3//2=1
'Computer Science > 알고리즘' 카테고리의 다른 글
[프로그래머스] Lv.1 두 개 뽑아서 더하기 (0) | 2021.06.20 |
---|---|
[프로그래머스] Lv1. 로또의 최고 순위와 최저 순위 (0) | 2021.06.18 |
[알고리즘] 두 개의 정다면체 주사위 (0) | 2021.05.18 |
[알고리즘] 대표값 구하기 (0) | 2021.05.16 |
[알고리즘] K번째 큰 수 (0) | 2021.05.16 |