https://programmers.co.kr/learn/courses/30/lessons/77884
내가 푼 방법
그냥 문제 그대로 풀었다. 약수 개수 구하는 함수 따로 만듦.
코드
class Solution {
public int solution(int left, int right) {
int answer = 0;
for(int i = left; i <= right; i++){
if(count(i) % 2 == 0) // 짝수이면
answer += i;
else answer -= i; // 홀수이면
}
return answer;
}
public int count(int number){ // 약수 개수 구하는 함수
int count = 0;
for(int i = 1; i <= number; i++){
if(number % i == 0)
count++;
else continue;
}
return count;
}
}
다른 사람의 코드
아~ 수가 나누어지려면 당연히 x * y 이런식으로 두 개의 수가 필요하니까 약수의 개수가 짝수인데
제곱수라면 x^2 으로 약수가 한개이기 때문에 홀수가 된다.
그래서 검사하는 수가 어떤 수의 제곱수이면 홀수, 아니면 짝수개가 된다. ㄷㄷ~~
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 큰 수 만들기 for JAVA _ 그리디 알고리즘 (0) | 2022.01.04 |
---|---|
[프로그래머스] 조이스틱 for JAVA _ 그리디 알고리즘 (0) | 2022.01.03 |
[프로그래머스] 실패율 for JAVA (0) | 2021.12.16 |
[프로그래머스] 폰켓몬 for JAVA (0) | 2021.12.13 |
[프로그래머스] K번째수 for JAVA (0) | 2021.12.08 |