코딩테스트 연습 - 약수의 합 | 프로그래머스 스쿨 (programmers.co.kr)
class Solution {
public int solution(int n) {
int answer = 0;
// 1에서부터 n까지 n이 i 로 나누어 떨어지면 answer 의 i 값들을 더함
for(int i=1; i<=n;i++){
if(n%i == 0){
answer = answer + i;
}
}
return answer;
}
}
// 여기서는 숫자가 3000이하인 정수이기 때문에 이렇게해도 시간복잡도가 오래걸리지는 않지만
// 만약 숫자가 더 크다면 이렇게 하는게 시간복잡도 면에서 좋음
int sum = 0;
int sqrt = (int) Math.sqrt(number);
for (int i = 1; i <= sqrt; i++) {
if (number % i == 0) {
sum += i;
if (i != number / i) {
// i와 number/i가 같지 않으면 (제곱근이 아니면) 둘 다 더함
sum += number / i;
}
}
}
return sum;
'알고리즘 > 프로그래머스 1단계' 카테고리의 다른 글
정수 제곱근 판별 (0) | 2024.06.24 |
---|---|
자연수 뒤집어 배열로 만들기 (0) | 2024.06.22 |
자릿수 더하기 (0) | 2024.06.22 |
문자열을 정수로 바꾸기 (0) | 2024.06.22 |
문자열 내 p와 y의 개수 (0) | 2024.06.22 |