문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
시도했던 코딩
def solution(n): answer = 0 for answer in range n: if n % answer == 0: answer += 1 return answer
이렇게 했더니 망했다.. 파이썬에서의 for문은 참 어렵다.
C/C++/Java에서의 반복문은 비슷해서 익숙했지만 파이썬에서는 달라서 봐도 모르겠다.
익숙해져야 할 듯.for문 말고도 while문 다 시도해봤지만 오류가 났다.
그래서 다른 풀이를 참고해서 다시 시도했다.
solution
def solution(n): answer = 0 for i in range(1, n+1): if n % i == 0: answer += i return answer
다른 풀이를 보니 내가 썼던 코드와 유사하다. for문의 활용을 잘 하지 못해 오류가 난 것이다.
덕분에 내게 부족한 것이 뭔지, 공부해야 할 게 무엇인지 알게 됐다.
간단한 문제라도 알고리즘을 직접 적어보고 고민해보는 것이 좋다. 아쉬운 점은 for문에 대해서 조금 더 공부하고 문제를 풀었다면 다른 풀이를 보지 않고도 성공할 수 있지 않았을까!