Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- AMBA BUS
- vitis
- linux
- hdl
- verilog HDL
- baekjoon
- SQL
- Backjoon
- Beakjoon
- 코딩테스트
- 실기
- chip2chip
- amba
- Vivado
- Zynq
- verilog
- boj
- 정보처리기사
- UNIX
- 자격증
- FPGA
- Bus
- axi
- C++
- 백준
- 리눅스
- java
- HDLBits
- 정처기
- Xilinx
Archives
- Today
- Total
Hueestory
[2022 KAKAO BLIND] - k진수에서 소수 개수 구하기 (C++) 본문
#include <string>
#include <vector>
#include <cmath>
#include <algorithm>
#include <iostream>
using namespace std;
bool isPrime(long long num){
if (num < 2) return false;
if (num == 2) return true;
if (num % 2 == 0) return false;
for (long long i = 3; i <= sqrt(num); i += 2)
if (num % i == 0) return false;
return true;
}
int solution(int n, int k) {
int answer = 0;
string s = "";
while (n > 0){
s += to_string(n % k);
n /= k;
}
reverse(s.begin(), s.end());
string tmp = "";
for(char x : s){
if(x == '0'){
if(!tmp.empty() && isPrime(stoll(tmp)))
answer++;
tmp = "";
}
else tmp += x;
}
if (!tmp.empty() && isPrime(stoll(tmp)))
answer++;
return answer;
}
1. 주어진 수를 k진수로 변환
- n을 k로 나눈 나머지 값이 k진수로 들어갈 값, n을 k로 나눈 값을 n에 다시 저장
2. 변환된 수를 string으로 변환하고 0을 기준으로 나눔
- string tmp;의 경우 tmp.empty()는 tmp가 비어있는지를 판단하는 bool
- stol : string to long
- stoll : string to long long
3. 소수 판별 함수에 넣고 판별 후 answer 갯수에 추가

'PS > programmers' 카테고리의 다른 글
| 정수를 나선형으로 배치하기 (Python) (0) | 2025.06.18 |
|---|---|
| [2019 KAKAO BLIND] - 오픈채팅방 (C++) (1) | 2024.08.28 |
| [2022 KAKAO BLIND] - 주차 요금 계산 (C++) (0) | 2024.08.28 |
| [2021 KAKAO BLIND] - 신규 아이디 추천 (C++) (0) | 2024.08.27 |
| [2019 KAKAO BLIND] - 실패율 (C++) (0) | 2024.08.08 |
Comments