알고리즘/이것저것

[프로그래머스] 자릿수 더하기 - 파이썬(python)

아뵹젼 2022. 9. 2.

 

 

 

나의 풀이

def solution(n):
    return sum([int(i) for i in str(n)])

간단하다.

정수 n을 문자열로 변환한 후에, for문을 이용해서 리스트로 변환한다. 

그런다음 sum(리스트) 를 해주면 자릿수가 각 리스트들의 원소가 되어 합이 구해진다.

 

 

 

다른 풀이

def sum_digit(number):
    if number < 10:
        return number;
    return (number % 10) + sum_digit(number // 10)

신박하다.

자릿수의 합산을 재귀를 이용해서 푼 풀이다.

6543이 number 로 들어왔다고 가정하자.

1) 3 + sum_digit(654)

2) 4 + sum_digit(65)

3) 5 + sum_digit(6)

4) return 6

따라서 3 4 5 6이 순서대로 합해지게 된다.

 

 

def sum_digit(number):
    return sum(map(int,str(number)))

map 을 이용하여 int 형 원소를 가진 map 객체로 변환한다.

sum() 함수는 map 객체에선 못 사용하는 줄 알고 리스트와 같은 iterable 한 자료형으로 변환한 후 사용가능한 줄 알았는데, 단독으로도 사용 가능하다..!

 

댓글