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
'Algorithm > Solution' 카테고리의 다른 글
[프로그래머스] 위클리챌린지 4주차 - 직업군 추천하기(C++) (0) | 2021.08.26 |
---|---|
[프로그래머스] 두 개 뽑아서 더하기 (0) | 2021.08.25 |
[프로그래머스] 내적 (0) | 2021.08.12 |
[프로그래머스] 두 정수 사이의 합 (0) | 2021.08.10 |
[프로그래머스] 위클리 챌린지 2주차 문제 - 상호 평가(C++) (0) | 2021.08.09 |