Find the sum of the digits of all the numbers from 1 to N (both ends included).
# N = 4 1 + 2 + 3 + 4 = 10 # N = 10 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + (1 + 0) = 46 # N = 12 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + (1 + 0) + (1 + 1) + (1 + 2) = 51
(예제참고) n까지 나열된 숫자 중에 두 자리 이상인 경우 자리 수 대로 쪼개서 더 한 숫자를 반환하고 총체적으로 더한값을 반환하라.
None
None
def compute_sum(n):
n_list = list(range(1, n+1))
result = [sum([int(i) for i in str(v)]) if v > 9 else v for v in n_list]
return sum(result)
[1,2,3,4,5,6,7,8,9,1,2,3,4....]
이런식으로 구성된 리스트가 반환됩니다.def compute_sum(n):
return sum(map(int,''.join(str(n) for n in range(n+1))))
간결하고 유연한 사고력이 보이는 좋은 풀이법이였습니다. 🥰