하루한줄 코딩일기

[인프런 - 파이썬 알고리즘 문제풀이] 2.6 자릿수의 합 본문

Algorithm

[인프런 - 파이썬 알고리즘 문제풀이] 2.6 자릿수의 합

jjuha 2022. 1. 26. 16:30

인프런 > 파이썬 알고리즘 문제풀이

섹션 2.6 자릿수의 합

👊 내 문제 풀이

자릿수의 합을 돌려주는 digit_sum 함수를 작성하는 문제다. 최대한 내장함수를 사용해 간단하게 코드를 작성하려고 했다. 숫자 x를 string 처리 한 후, map 함수를 사용해 각 자릿수를 나누고 다시 int형으로 변환 한다. 다음 sum 함수로 합을 구해 각 자릿수의 합을 return 한다. 

def digit_sum(x):
	return sum(list(map(int,str(x))))	#list로 변환하지 않고 sum 사용 가능

N = int(input())
arr = list(map(int, input().split()))
max = -9999999
answer = 0

for i in arr:
	dsum = digit_sum(i)
	if dsum>max:
		max = dsum
		answer = i
print(answer)

채점 결과

 

💡 강의 해답

강의에서 작성한 digit_sum 함수는 숫자 x가 0보다 클 때 까지 while문을 돌며 x를 10으로 나눈 나머지를 sum에 누적한다. 그 후 x를 10으로 나눈 몫을 x에 저장한다.

이 외에는 내 코드와 동일하다.

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

n=int(input())
a=list(map(int, input().split()))
res=0
max=-2147000000
for x in a:
    tot=digit_sum(x)
    if tot>max:
        max=tot
        res=x
print(res)
Comments