Algorithm/Solution
[프로그래머스] 약수의 개수와 덧셈
BeNI
2021. 8. 16. 19:41
728x90
코딩테스트 연습 - 약수의 개수와 덧셈 | 프로그래머스 (programmers.co.kr)
🔎 문제 설명
left부터 right까지 약수의 개수가 짝수면 더하고 홀수면 빼는 방식
🔎 풀이 과정
함수하나를 만들어서 약수의 개수가 짝수면 x를 리턴하고, 홀수면 -x를 리턴하게 했다.
약수의 개수는 1부터 x까지 나머지가 0인 것을 카운트해주면 된다.
<정답코드>
#include <string>
#include <vector>
using namespace std;
int divisor(int x){
int cnt=0;
for(int i=1;i<=x;i++){
if(x%i == 0) cnt++;
}
if(cnt%2==0) return x;
else return -x;
}
int solution(int left, int right) {
int answer = 0;
for(int i=left; i<=right; i++){
answer+=divisor(i);
}
return answer;
}
728x90