프로그래머스 약수의 개수와 덧셈 [Java]
문제출처
https://programmers.co.kr/learn/courses/30/lessons/77884
class Solution {
public int solution(int left, int right) {
int answer = 0;
for(int n = left; n <= right; n++){
if(countDivisor(n) % 2 == 0) { answer += n; }
else { answer -= n; }
}
return answer;
}
public int countDivisor(int n){
int count = 0;
for(int i = 1; i <= n; i++){
if(n % i == 0) { count++; }
}
return count;
}
}
1부터 해당수까지 약수의 개수를 세서 반환하는 식으로 풀었다.
다른 사람 풀이를 보니
Math.sqrt(i)
이걸 사용해서
제곱수라면 약수의 개수가 홀수
제곱수가 아니라면 약수의 개수가 짝수
이런식으로 풀었다.
하나 배우고 간다... 상상도 못한 풀이 방법
'문제풀이 > 코딩테스트' 카테고리의 다른 글
프로그래머스 실패율 [Java] (0) | 2022.03.03 |
---|---|
프로그래머스 체육복 [Java] (0) | 2022.03.03 |
프로그래머스 모의고사 [Java] (0) | 2022.02.24 |
프로그래머스 K번째수 [Java] (0) | 2022.02.23 |
프로그래머스 완주하지 못한 선수 [Java] (0) | 2022.02.22 |