📌
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 배열을 이용해 문자열로 구분하여 간단히 구현하였다.
아직도 갈 길이 멀구나 ...
'알고리즘' 카테고리의 다른 글
[알고리즘] 회문 문자열 검사 (0) | 2022.01.24 |
---|---|
[알고리즘] 점수계산 (0) | 2022.01.24 |
[알고리즘] 뒤집은 소수 (0) | 2022.01.21 |
[알고리즘] 소수 (0) | 2022.01.21 |
[알고리즘] 정다면체 (0) | 2022.01.19 |