이카's

문제

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

다들 생각하는 방법 일듯 하여... 자세한 설명은 생략한다..

반응형
profile

이카's

@Edan Cafe ☕

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!