나의 풀이
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 한 자료형으로 변환한 후 사용가능한 줄 알았는데, 단독으로도 사용 가능하다..!
'알고리즘 > 이것저것' 카테고리의 다른 글
[프로그래머스] 약수의 합 - 파이썬(python) (0) | 2022.09.03 |
---|---|
[프로그래머스] 이상한 문자 만들기 - 파이썬(python) (0) | 2022.09.02 |
[프로그래머스] 자연수 뒤집어 배열로 만들기 - 파이썬(python) (0) | 2022.09.02 |
[프로그래머스] 정수 내림차순으로 배치하기 - 파이썬(python) (0) | 2022.09.02 |
[프로그래머스] 정수 제곱근 판별 - 파이썬(python) (0) | 2022.09.01 |
댓글