알고리즘

[알고리즘] 자릿수의 합

오승미 2022. 1. 20. 23:37

📌

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

 

ex) 125

 

=> 1 + 2 + 5

 

 

✔️내가 짠 코드

import sys
sys.stdin=open("input.txt", "r")

n=int(input())
input_list=list(map(int, input().split()))

def digit_sum(x):
    digit_num=0

    while (x>0):
    #몫과 나머지를 이용하여 구한다.
        digit_num+=x%10
        x=x//10

    return digit_num

#각 자릿수를 모두 합한 숫자 중 가장 큰 수와 해당하는 실제 숫자
max_sum, max_num=0,0
for x in input_list:
    sum=digit_sum(x)

    if max_sum < sum:
        max_sum=sum
        max_num=x

print(max_num)

 

✔️실제 코드 (보완된 부분만)

def digit_sum(x):
	sum=0
	for i in str(x):
		sum+=int(i)
	return sum

>>>

 

각 자릿수를 어떻게 따로 더할건지가 관건이었다.

해당 코드에서는 10으로 나누어준 몫과 나머지를 이용하여 구했지만,

실제 코드에서는 string 배열을 이용해 문자열로 구분하여 간단히 구현하였다.

아직도 갈 길이 멀구나 ...