문제풀이:
첫번째풀이는 n이클경우 비효율적일수있다 2번째방법으로 구해보자
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
for(int i=1; i<=n; i++)
{
if(n%i==0)
{
answer+=i;
}
}
return answer;
}
2.
#include <string>
#include <vector>
#include <cmath>
using namespace std;
int solution(int n) {
int answer = 0;
// 1부터 n의 제곱근까지만 순회하며 약수를 구함
for(int i = 1; i <= sqrt(n); i++) {
if(n % i == 0) {
answer += i; // 약수
if(i != n / i) {
answer += n / i; // 대칭적인 약수
}
}
}
return answer;
}
'코딩테스트' 카테고리의 다른 글
프로그래머스_0단계_인덱스 바꾸기 C++ (0) | 2024.04.25 |
---|---|
프로그래머스_1단계_콜라츠 추측 C++ (0) | 2024.04.23 |
프로그래머스_0단계_첫 번째로 나오는 음수 C++ (0) | 2024.04.23 |
프로그래머스_0단계_대문자와 소문자 C++ (0) | 2024.04.23 |
프로그래머스_0단계_뒤에서 5등 위로 C++ (0) | 2024.04.23 |