728x90
두 수 사이의 약수의 합을 구하라
문제 설명
두 정수 left와 right가 매개변수로 주어집니다.
left부터 right까지의 모든 수들 중에서,
약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ left ≤ right ≤ 1,000
입출력 예시


설계 / 아이디어
- 첫번째 반복문은 left ~ right까지 반복
- 두번째 반복문에서 약수를 찾아 count에 저장
- 저장된 count가 짝수인지 홀수인지 찾고, 더하거나 뻄
문제 풀이
class Solution {
public int solution(int left, int right) {
int answer = 0;
int count;
for (int i = left; i <= right; i++) {
// left부터 right까지 반복해야 되기 때문에 count 초기화
count = 0;
// 약수를 찾는 반복문
for (int j = 1; j <= i; j++) {
if (i % j == 0) {
count++;
}
}
// 약수의 개수가 짝수인 경우 answer에 더하고 아니면 뺌
answer = (count % 2 == 0) ? answer + i : answer - i;
// if (count % 2 == 0) {
// answer += i;
// } else answer -= i;
}
return answer;
}
}
728x90
'Java > 프로그래머스' 카테고리의 다른 글
[프로그래머스][JAVA] 잘라서 배열로 저장하기 (0) | 2023.02.01 |
---|---|
[프로그래머스][JAVA] 부족한 금액 계산하기 (0) | 2023.01.31 |
[프로그래머스][JAVA] 없는 숫자 더하기 (2) | 2023.01.29 |
[프로그래머스][JAVA] 크기가 작은 부분 문자열 (0) | 2023.01.28 |
[프로그래머스][JAVA] K번째 수 (0) | 2023.01.27 |
댓글