문제 출처
N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력
하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를
꼭 작성해서 프로그래밍 하세요
풀이코드
n = int(input())
a = list(map(int, input().split()))
def digit_sum(x):
sum = 0
while x>0:
sum += x%10
x = x//10
return sum
max = 0
for x in a:
tot = digit_sum(x)
if tot > max:
max = tot
res = x
print(res)
코드설명
- sum에 몫이 아닌 나머지로 넣어, 거꾸로 정렬해서 일의 자리부터 더함
- 그 후 x에 몫을 남기고 0보다 클때까지 반복하여 원소들의 합을 짜는 def를 만듬
- 자릿수의 합이 최대값을 찾아서 그 값의 x인 자연수 출력
기타사항
## string을 이용한 함수
def digit_sum(x):
sum = 0
for i in str(x):
sum += int(i)
return sum
반응형
'Algorithm > Inflearn' 카테고리의 다른 글
[Python/알고리즘] 인프런 점수계산 (0) | 2023.12.16 |
---|---|
[Python/알고리즘] 인프런 주사위게임 (0) | 2023.12.14 |
[Python/알고리즘] 인프런 뒤집은 소수 (0) | 2023.12.13 |
[Python/알고리즘] 인프런 소수의 개수 구하기 (2) | 2023.12.06 |
[Python/알고리즘] 인프런 정다면체 (0) | 2023.11.29 |