문제 설명
https://school.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++) {
int sum = 0;
for (int j = 1; j <= i; j++) if (i % j == 0) sum += 1;
answer += (sum % 2 == 0) ? i : -i;
}
return answer;
}
}
후기
1일 경우를 잘 처리하면 1번 정답 실패를 해결할 수 있다. 다른 사람 풀이에는 제곱수인 경우는 약수의 개수가 홀수인 방법으로 풀었던데 역시 수학 관련 문제는 지식이 있으면 치트키다...
테스트 케이스)
| left | right | result |
| 1 | 1 | -1 |
| 1 | 2 | 1 |
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 1] 음양 더하기 (0) | 2023.07.11 |
|---|---|
| [프로그래머스][JAVA][Lv. 1] 로또의 최고 순위와 최저 순위 (0) | 2023.07.11 |
| [프로그래머스][JAVA][Lv. 1] 크레인 인형뽑기 게임 (0) | 2023.07.10 |
| [프로그래머스][JAVA][Lv. 1] 부족한 금액 계산하기 (0) | 2023.07.10 |
| [프로그래머스][JAVA][Lv. 1] 없는 숫자 더하기 (0) | 2023.07.10 |