소인수분해
자연수 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;
}
소수판단 알고리즘
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 일 경우 예외처리를 하는것을 기억해야 합니다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[C++] 유한소수 판별하기 (0) | 2023.05.22 |
---|---|
[C++] 문자열 밀기 (0) | 2023.05.22 |
[C++] (공백분리) 컨트롤 제트 (1) | 2023.05.19 |
[C++] 중복된 문자 제거, 가장 큰 수 찾기 (0) | 2023.05.17 |
[C++] (대소문자 범위) 문자열안에 문자열, 숨어있는 숫자의 덧셈 (1) (0) | 2023.05.16 |
댓글