개발일지/코딩테스트
[Programmers] 약수의 개수와 덧셈(C++)
쫌눈
2025. 4. 3. 18:42
728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/77884
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
https://jjomnoon-diary.tistory.com/55
[Programmers] 약수의 합(c++)
https://school.programmers.co.kr/learn/courses/30/lessons/12928 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr약수는 나눈 나머지가 0
jjomnoon-diary.tistory.com
위의 테스트와 비슷한 유형의 문제이다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int GetDivisorsCount(int num)
{
vector<int> divisors;
for (int i = 1; i <= num; i++)
{
auto iter = find(divisors.begin(), divisors.end(), i);
if (iter != divisors.end())
{
return divisors.size();
}
if (num%i == 0)
{
divisors.emplace_back(i);
int a = num / i;
iter = find(divisors.begin(), divisors.end(), a);
if (iter != divisors.end())
{
return divisors.size();
}
else
{
divisors.emplace_back(a);
}
}
}
}
int solution(int left, int right) {
int answer = 0;
for (int i = left; i <= right; i++)
{
if (GetDivisorsCount(i)%2 == 0)//짝수
{
answer += i;
}
else {//홀수
answer -= i;
}
}
return answer;
}

728x90
반응형