NIRVANA
[level 1] 자릿수 더하기 본문
문제
자연수 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
처음에는 N을 입력 받은 후에 바로 map에서 split()를 사용하려고 해서 헤맸다.
내가 map함수의 사용법을 잘 못 알고 있어서 그랬던 거였다! 더 공부해봐야 할 듯
참고:https://codinglevelup.tistory.com/83
다른 사람들 풀이
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
def sum_digit(number):
'''number의 각 자릿수를 더해서 return하세요'''
if number < 10:
return number
return number%10 + sum_digit(number//10)
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(sum_digit(123)));
10의 자리 수로 나누어서 각각의 몫과 나머지를 더하는 것도 인상 깊은 풀이였다.
'Coding test(Python3) > Programmers' 카테고리의 다른 글
[level 1] x만큼 간격이 있는 n개의 숫자 (0) | 2023.07.06 |
---|---|
[level 1] 평균 구하기 (0) | 2023.07.06 |
[level 1] 짝수와 홀수 (0) | 2023.07.05 |
[level 1] 약수의 합 (0) | 2023.07.04 |
[level 1] 나머지가 1이 되는 수 찾기 (0) | 2023.07.04 |