https://school.programmers.co.kr/learn/courses/30/lessons/12928
문제
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
- n은 0 이상 3000이하인 정수입니다.
발상
말 그대로 나누어 떨어지는 수를 찾으면 되는 문제이다.
제한조건이 0 부터 시작이기 때문에, 0을 예외처리하고, 반복문을 돌리되 마지막수와 마지막 전 수를 간단한 나누기로 구하여 탐색범위를 줄일 수 있을 것 같았다.
의사코드
1. n==0이면 0 반환
2.반복문(n/2까지)
1. i로 나누어 떨어지면 결과값에 더하기
3. 결과값 반환
개선
다른 사람들의 풀이를 살펴보니 거의 다 비슷비슷한 코드였다.
문제가 심플하니 사람들이 생각하는 최적의 답안도 비슷비슷한 것 같다.
'IT > Algorithm' 카테고리의 다른 글
[programmers] 정수 내림차순으로 배치하기 (0) | 2022.07.08 |
---|---|
[programmers] 자릿수 더하기 (0) | 2022.07.08 |
[programmers] 서울에서 김서방 찾기 (0) | 2022.07.08 |
[programmers] 부족한 금액 계산하기 (0) | 2022.07.07 |
[programmers] 나머지가 1이 되는 수 찾기 (0) | 2022.07.06 |