알고리즘 문제풀이
[Algorithm] 자릿수의 합 #python
Edan Cafe ☕
2021. 5. 11. 22:09
문제
N개의 자연수가 입력되면
자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수 출력
자릿수의 합 구하는 함수 만들기
코드 구현 생각
처음에는 잘 이해 안됐지만 쉽게 생각하니 쉬웠다.
111111 이 주어진다면 1을 6번 더하면 된다는 말 즉 return 값은 6
999 라면 각각 자리의 숫자를 합하는 것
PYTHON
# 문자열 방법
def solution(x):
total = []
sum = 0
for i in x:
for j in str(i):
sum += int(j)
total.append(sum)
sum = 0
max_num = 0
for i in total:
if i > max_num:
max_num = i
answer = x[total.index(i)]
return answer
이 방법이 너무 신기했다. 처음 숫자를 가져올때는 문자열로 가져와서 형변환을 하면서 자릿수를 합하는 방법
뭔가 python 스럽고 신기한 알고리즘 방법인거 같다.
# 숫자로 생각하여 10으로 나누는 방법
def digit_sum(x):
answer = 0
total = []
score = 0
for i in x:
while i > 0:
score += i % 10
i = i // 10
total.append(score)
score = 0
max_num = 0
for i in total:
if i > max_num:
max_num = i
answer = x[total.index(i)]
return answer
다들 생각하는 방법 일듯 하여... 자세한 설명은 생략한다..
반응형