본문 바로가기
Computer Science/Coding Test

c++(cpp) 코딩테스트 : 프로그래머스 - 약수의 개수와 덧셈

by hzyiunn 2023. 2. 5.
728x90
반응형

#include <string>
#include <vector>

using namespace std;

int solution(int left, int right) {
    int answer = 0;
    int count = 0; 
    for(int i = left; i <= right ; i++){
        for(int j = 1 ; j <= i; j++){
            if (i % j == 0){
                count ++;
            }
        }
        if(count % 2 == 0){
            answer += i;
        }
        else{
            answer -= i ; 
        }
    }
    return answer;
}

이렇게 코드를 작성했는데 왜 자꾸 에러가 뜨나 했더니

count 변수를 for문안에 안넣어서였다..

변수가 바뀔 때 마다 count를 새로 시작해야하는데 바깥에 뒀으니..ㅋㅋㅋㅋ

 

아래 코드가 정답!

#include <string>
#include <vector>

using namespace std;

int solution(int left, int right) {
    int answer = 0;
    
    for(int i = left; i <= right ; i++){
        int count = 0;
        for(int j = 1 ; j <= i; j++){
            if (i % j == 0){
                count ++;
            }
        }
        if(count % 2 == 0){
            answer += i;
        }
        else{
            answer -= i ; 
        }
    }
    return answer;
}
728x90
반응형

댓글