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
- 백준
- UnrealEngine5
- C++
- Unreal Engine5
- 줄 세우기
- directx
- RVO
- Frustum
- 팰린드롬 만들기
- DirectX11
- DeferredRendering
- 언리얼엔진5
- winapi
- baekjoon
- Programmers
- UE5
- 1563
- C
- GeeksForGeeks
- 티스토리챌린지
- UnrealEngine4
- NRVO
- const
- RootMotion
- softeer
- IFileDialog
- 오블완
- 프로그래머스
- algorithm
- 2294
Archives
- Today
- Total
Game Develop
[Algorithm] Programmers :: k진수에서 소수 개수 구하기 본문
https://school.programmers.co.kr/learn/courses/30/lessons/92335
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
bool checkPrimeNum(long long n)
{
if (n < 2) return false;
for (long long i = 2; i < (long long)sqrt(n); i++)
{
if ((n % i) == 0)
{
return false;
}
}
return true;
}
vector<string> divide(string s)
{
istringstream ss(s);
string subs1;
vector<string> v;
while (getline(ss, subs1, '0'))
{
v.push_back(subs1);
}
return v;
}
string change10tok(int n, int k) // n을 k진수로
{
string s = "";
while (n != 0)
{
s.push_back((n % k) + '0');
n /= k;
}
reverse(s.begin(), s.end());
return s;
}
int solution(int n, int k) {
int answer = 0;
string temp1 = change10tok(n, k);
vector<string> temp2 = divide(temp1);
for (int i = 0; i < temp2.size(); i++)
{
if (temp2[i] == "") continue;
if (checkPrimeNum(stoll(temp2[i]))) answer++;
}
return answer;
}
|
cs |
그냥 처음 딱 문제를 보면 풀기 싫어지긴 하는데, 사실 실상은 많이 어렵지 않은 문제긴 했다.
정확히 3가지의 기능을 구현할줄 알면 된다.
1. 10진수를 n진법으로의 변환
2. 문자열을 특정 토큰으로 split하기
3. 소수판별
코테를 준비하는 사람이라면 어렵지않게 구현할 수 있을것이다.
주의할점 하나는 10진수 n을 k진법으로 변환할 때 숫자가 매우 길어질 수 있기때문에 long long으로 넉넉하게 잡아주자.
소수판별에서는 주어진 n에 대해서 반복문을 돌릴 때 n까지 할필요 없이 루트n까지만 돌려야 한다.
루트n 미만으로 하니까 14,16번에서 실패가 떠서 루트n 이하로 해주니까 해결됐다.
'Algorithm > Programmers' 카테고리의 다른 글
[Algorithm] Programmers :: 교점에 별 만들기 (0) | 2022.09.06 |
---|---|
[Algorithm] Programmers :: 2 x n 타일링 (0) | 2022.09.05 |
[Algorithm] Programmers :: 피로도 (0) | 2022.09.05 |
[Algorithm] Programmers :: 괄호 회전하기 (0) | 2022.09.05 |
[Algorithm] Programmers :: 다음 큰 숫자 (0) | 2022.08.29 |