NIRVANA

[level 1] 자릿수 더하기 본문

Coding test(Python3)/Programmers

[level 1] 자릿수 더하기

녜잉 2023. 7. 5. 15:00

문제

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

 

 

문제 풀이 접근법1

 

1) 자연수 n을 입력 받기

2) 자연수 n을 int → str로 형변환

3) str로 바뀐 n을 쪼개어서 리스트로 저장

4) map함수를 사용하여서 리스트의 원소를 str→int로 형변환

5) 반복문으로 리스트의 원소 각각을 덧셈

def solution(n):
    answer = 0
    number = []
    
    for i in str(n):
        number.append(i)
        
    number_int = list(map(int, number))
    
    for i in number_int:
        answer = answer + i 
    return answer

형변환 참고: https://go-hard.tistory.com/96

 

[python] 파이썬 각 자리수 분리, 더하기

파이썬에서 각 자리숫자를 분리하는 방법은 여러가지가 있으며, 소개해드릴 방법은 문자열로 변환 후 분리하는 방법, 10으로 나누어서 수행하는 방법, map함수를 이용하여 자리수 별 더하는 방법

go-hard.tistory.com

처음에는 N을 입력 받은 후에 바로 map에서 split()를 사용하려고 해서 헤맸다.

내가 map함수의 사용법을 잘 못 알고 있어서 그랬던 거였다! 더 공부해봐야 할 듯

참고:https://codinglevelup.tistory.com/83

 

[Python] 파이썬 : map()함수 왜 쓰는지와 사용법 단계별로 이해하기

파이썬 map()함수란? : 각 요소들에 특정한 함수를 적용시킬 때 쓰는 함수이다. 파이썬 표준에 포함 되어있는 내장 함수이다. 단계별로 이해하기 - map()을 왜 쓰지? Answer) 1개의 입력이 아니라, 여러

codinglevelup.tistory.com

 


다른 사람들 풀이

def sum_digit(number):
    return sum([int(i) for i in str(number)])
print("결과 : {}".format(sum_digit(123)));

나도 나중에 sum list로 구현해봐야지..

https://ctkim.tistory.com/entry/Python-Sum-function

 

[Python 내장 함수] Sum() : 시퀀스 자료형(리스트..) 합계 구하기

더보기 ##필요 선행 지식 1. 파이썬 리스트(List) 정리 및 사용법 2. 파이썬 반복문 정리 및 사용법 3. 파이썬 len() 함수 4. 파이썬 zip() 함수 5. 파이썬 range() 함수 1. Sum()함수란? 파이썬에서 여러 숫자

ctkim.tistory.com

 

def sum_digit(number):
    '''number의 각 자릿수를 더해서 return하세요'''
    if number < 10:
        return number

    return number%10 + sum_digit(number//10)



# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(sum_digit(123)));

10의 자리 수로 나누어서 각각의 몫과 나머지를 더하는 것도 인상 깊은 풀이였다.