본문 바로가기

코딩 테스트/프로그래머스

[Level 1, C++] 약수의 개수와 덧셈

728x90
반응형

다른사람들 풀이는 더 짧게 되어있어서 신기하게 느껴졌다.

#include <string>
#include <vector>

using namespace std;

int solution(int left, int right) {
    int answer = 0;
    vector<int> even;
    vector<int> odd;
    vector<int> temp;
    for (int i = left; i <= right; i++) {
        for (int u = 1; u <= i; u++) {
            if (i % u == 0) temp.push_back(u);
        }
        if (temp.size() % 2 == 0) even.push_back(i);
        else odd.push_back(i);
        temp.clear();
    }
    for (int & i : even) {
        answer += i;
    }
    for (int & i : odd) {
        answer -= i;
    }
    return answer;
}

 

728x90
반응형