국문과 유목민

22. 자릿수 더하기 본문

알고리즘_코딩테스트/프로그래머스_Level1

22. 자릿수 더하기

논곰 2020. 9. 11. 23:16

0. 문제

링크)


1. 알고리즘 계획

- 초기에 reduce함수를 이용하고자 함. ( 한 테스트 케이스에서 막힘)

  1. 리스트를 쪼개고, for문을 돌면서 리스트의 값을 문자열에 저장시킴


2. 나의 코드

# 초기 시도 방법(통과 X)
def solution(n):
    return reduce(lambda a, b: int(a) + int(b), list(str(n)))

- 초기에 시도했던 코드: reduce함수를 이용하려고 했으나, 한 테스트 부분에서 걸림

def solution(n):
    answer = 0
    for i in list(str(n)):
        answer += int(i)
    return answer

- 나름 괜찮은 방법이지만 너무 무난하다고 생각함.


3. 다른 사람의 코드

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

- 자릿수를 잘라내면서, 함수를 재귀적으로 돌림

- 개인적으로 참신하다고 생각한 코드

def sum_digit(number):
    return sum([int(i) for i in str(number)])

- 리스트의 sum함수를 사용할 수 있다는 것을 알고있으면서 정작 사용해야 할 때는 자주 까먹는 듯하다.


4. 정리 및 리뷰

- 자릿수에 관한 문제가 나오면 10씩 잘라보는 것도 생각하기. log를 생각해보도록 하자.

- 자주 사용하는 자료형의 특징과 함수들에 대해서 확실히 익히고 있으면 코드를 쉽게 풀 수 있을 것 같다. 


코드 만족도: ★★★☆☆

Comments