알고리즘/프로그래머스
[C++] 소인수분해, 7의 개수
parkkingcar
2023. 5. 18. 15:01
소인수분해
자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
// n이 소수인지 판별
bool isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
vector<int> solution(int n) {
vector<int> answer;
for(int i = 2; i < n+1; i++){
if(n % i == 0){
if(isPrime(i)){
answer.push_back(i);
}
}
}
return answer;
}
소수판단 알고리즘
[C++] 소수 찾기 알고리즘
소수는 약수가 1과 자기 자신밖에 없는 수이다. 따라서 소수 판정은 2부터 n-1까지의 숫자로 나눠봄으로써 알 수 있다. 하지만 연산량을 조금 줄이기 위해서 한 가지 수학적인 사실을 이용할 수
doomed-lab.tistory.com
7의 개수
정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> array) {
int answer = 0, tmp;
for(auto i : array){
while(i){
tmp = i % 10;
if(tmp % 7 == 0 && tmp != 0) answer++;
i /= 10;
}
}
return answer;
}
주의할점은 위처럼 숫자 개수를 카운트하는 문제의 경우, 나머지를 이용하는데 0 일 경우 예외처리를 하는것을 기억해야 합니다.