Java/알고리즘
약수의 개수와 덧셈
티코딩
2024. 1. 24. 14:55
간단하다 역시. 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으로 초기화해줘야 각수의 약수가 짝수인지 홀수인지 알 수 있다.