2022. 9. 29. 16:49 자기개발/코딩테스트
C++ (코딩테스트) - k진수에서 소수 개수 구하기(프로그래머스)
#include <string>
#include <vector>
using namespace std;
int solution(int n, int k) {
int answer = 0;
//k진수 역으로 구하기
string s;
while (true)
{
s.push_back('0' + n%k);
n /= k;
if (n / k < 1)
{
s.push_back('0' + n%k);
break;
}
}
//역으로 구한 k진수에 0사이에 있는 숫자 담기
vector<long long> int_arr;
bool check = false;
int cnt = -1;
for (int i = s.size() - 1; i >= 0; i--)
{
if (s[i] == '0')
{
check = false;
continue;
}
if (!check)
{
check = true;
cnt++;
int_arr.push_back(0);
}
int_arr[cnt] *= 10;
int_arr[cnt] += s[i] - '0';
}
//소수 갯수 구하기
for (int i = 0; i < int_arr.size(); i++)
{
if(int_arr[i] <= 1) continue;
bool check = true;
for (long long j = 2 ; j*j <= int_arr[i]; j++)
{
if(int_arr[i] % j == 0)
{
check = false;
break;
}
}
if (check) answer++;
}
return answer;
}
문제
https://school.programmers.co.kr/learn/courses/30/lessons/92335
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 풀이
'자기개발 > 코딩테스트' 카테고리의 다른 글
C++ (코딩테스트) - 피보나치 수(프로그래머스) (0) | 2022.09.30 |
---|---|
C++ (코딩테스트) - 멀리 뛰기(프로그래머스) (0) | 2022.09.30 |
C++ (코딩테스트) - 행렬의 곱셈(프로그래머스) (0) | 2022.09.29 |
C++ (코딩테스트) - 이진 변환 반복하기(프로그래머스) (0) | 2022.09.29 |
C++ (코딩테스트) - 신고 결과 받기(프로그래머스) (1) | 2022.09.19 |