간단하다 역시. left = 13, right = 17 일때,
13부터 17까지 돌고, 각 수의 약수를 구하고 그걸 세주고 그게 홀수인지 짝수인지 검증하면 끝.
public int solution(int left, int right) {
int answer = 0;
int cnt = 0;
for(int i = left; i <= right; i++){
cnt = 0;
for(int j = i; j >=1; j--){
if(i % j == 0){
cnt++;
}
}
if(cnt % 2 == 0){
answer += i;
}else{
answer -= i;
}
}
return answer;
}
처음에 헷갈렸던 부분이 cnt++ 해주고 i가 바뀔때마다 cnt를 0으로 초기화해주는걸 깜빡했다. cnt를 0으로 초기화해줘야 각수의 약수가 짝수인지 홀수인지 알 수 있다.
'Java > 알고리즘' 카테고리의 다른 글
부족한 금액 계산하기 (0) | 2024.01.26 |
---|---|
문자열 내림차순으로 배치하기 (1) | 2024.01.25 |
수박수박수 (1) | 2024.01.23 |
내적, 가운데 글자 가져오기 (1) | 2024.01.22 |
제일 작은 수 제거하기 (0) | 2024.01.19 |