문제
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
어떤 방법의 메소드가 있는지 구글링해보니 두가지 방법이 있다.
map과 str
# map 이용
def solution(N) :
result = sum(map(int, str(N)))
return result
아래는 str을 이용한 반복문이다.
숫자를 문자로 바꿔주고 다시 int를 취해 더해준다.
def solution(N) :
result = 0
for i in str(N) :
result = result + int(i)
return result
map : 각각 요소들에 특정한 함수를 적용시킬 때 쓴다.
str로 문자화 하였다가 int로 다시 더해준다
문제
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
def solution(n) :
sum = 0
for i in range(n) :
if n % (i+1)== 0 :
sum = sum + i+1
return sum
정답은 맞았는데 어디다가 +1을 해줘야 하는지 너무 헷갈린다
6의 약수를 찾는 예시를 통해 코드를 짰다
i=0부터 노트데 하나씩 적어보며 어떤 반복문으로 계산이 되는지 확인해봤다
언제쯤 for문이 자연스러워질까 ㅠㅠ