프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제

제출한 코드
class Solution {
public int solution(int left, int right) {
int result = 0;
for (int i = left; i <= right; i++) {
if (i % Math.sqrt(i) == 0) result -= i;
else result += i;
}
return result;
}
}
풀이
문제에서 약수의 개수가 짝수인 수는 더하고, 홀수인 수는 빼라고 되어 있다. 조금 복잡해 보일 수 있지만, 사실은 약수의 개수가 홀수인 수는 제곱수밖에 없다.
이 점을 활용하기 위해 자바에서 제공하는 Math 클래스를 이용해서 문제를 풀었다. 그중 sqrt() 메서드를 사용해서 제곱수인 수를 골라내어 제곱수가 맞다면 result -= 해당숫자 를, 아니라면 result += 해당숫자 를 하여 결과를 도출했다.
'프로그래머스' 카테고리의 다른 글
| [프로그래머스] 12918번 - 문자열 다루기 기본 [Java] (0) | 2026.04.15 |
|---|---|
| [프로그래머스] 82612번 - 부족한 금액 계산하기 [Java] (0) | 2026.04.14 |
| [프로그래머스] 12917번 - 문자열 내림차순으로 배치하기 [Java] (0) | 2026.04.13 |
| [프로그래머스] 70128번 - 내적 [Java] (0) | 2026.04.10 |
| [프로그래머스] 12922번 - 수박수박수박수박수박수? [Java] (0) | 2026.04.08 |
