문제 1. 자릿수 더하기
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
💡 문제 풀이
`내 풀이`
def solution(n):
return sum(map(int, str(n)))
`오답노트`
- 이 문제를 이렇게 오래 걸려서 풀 줄이야🤦♀️ 처음에는 for 문을 써서 풀다가 계속 에러가 나서 구글링해서 map함수 발견함
- `map함수` 리스트의 요소를 지정된 함수로 처리해주는 함수 (원본 리스트를 변경하지 않고 새 리스트 생성)
- list(map(함수, 리스트))
- tuple(map(함수, 튜플))
파이썬 코딩 도장: 22.6 리스트에 map 사용하기
이번에는 리스트에 map을 사용해보겠습니다. map은 리스트의 요소를 지정된 함수로 처리해주는 함수입니다(map은 원본 리스트를 변경하지 않고 새 리스트를 생성합니다). list(map(함수, 리스트)) tupl
dojang.io
# map 예시
a = [1.2, 2.5, 3.7, 4.6]
a = list(map(int, a))
a
'''
[1, 2, 3, 4]
'''
- 원래 내가 풀고 싶었던 방법은 아래 풀이임. 다른 분들의 풀이를 보니 내가 막혔던 부분이 `재귀구조` 부분!
- n을 10으로 나눈 나머지가 1의 자리수고, n을 10으로 나눈 다음에 다시 10으로 나눈 나머지가 10의 자리수, ...의 흐름
- `파이썬 산술연산자`
- + (덧셈), - (뺄셈), * (곱셈), / (나눗셈)
- ** (거듭제곱), // (몫), % (나머지)
def solution(n):
if n < 10:
return n
return n%10 + solution(n//10) # 여기서 자기자신을 호출해 사용하는 재귀구조