๋ฌธ์
์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋ชจ๋ ์์๋ฅผ ์ฐพ๋ ์ ๋ช ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์ด ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
- 2๋ถํฐ N๊น์ง ๋ชจ๋ ์ ์๋ฅผ ์ ๋๋ค.
- ์์ง ์ง์ฐ์ง ์์ ์ ์ค ๊ฐ์ฅ ์์ ์๋ฅผ ์ฐพ๋๋ค. ์ด๊ฒ์ P๋ผ๊ณ ํ๊ณ , ์ด ์๋ ์์์ด๋ค.
- P๋ฅผ ์ง์ฐ๊ณ , ์์ง ์ง์ฐ์ง ์์ P์ ๋ฐฐ์๋ฅผ ํฌ๊ธฐ ์์๋๋ก ์ง์ด๋ค.
- ์์ง ๋ชจ๋ ์๋ฅผ ์ง์ฐ์ง ์์๋ค๋ฉด, ๋ค์ 2๋ฒ ๋จ๊ณ๋ก ๊ฐ๋ค.
N, K๊ฐ ์ฃผ์ด์ก์ ๋, K๋ฒ์งธ ์ง์ฐ๋ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ K < N, max(2, K) < N ≤ 1000)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ K๋ฒ์งธ ์ง์์ง ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
10 7
์์ ์ถ๋ ฅ 1
9
ํํธ
2, 4, 6, 8, 10, 3, 9, 5, 7 ์์๋๋ก ์ง์์ง๋ค. 7๋ฒ์งธ ์ง์์ง ์๋ 9์ด๋ค.
์ฝ๋
#include <iostream>
#include <cstdio>
bool arr[1001] = {true, true, false, };
int isNum(int N, int K) {
int num{2}, cnt{0}, result{0};
for (int i = 1; cnt < K; i++) {
if(num*i > N){
for(int j = 2; j <= N; j++) {
if(!arr[j]) {
num = j;
i = 1;
break;
}
}
}
if(!arr[num*i]) {
cnt++;
arr[num*i] = true;
result = num*i;
}
}
return result;
}
int main() {
int N, K;
scanf("%d %d", &N, &K);
std::cout << isNum(N, K);
return 0;
}
'๐ฅ๏ธ Computer > Algorithm Solution' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON] 1157๋ฒ : ๋จ์ด ๊ณต๋ถ (0) | 2023.07.24 |
---|---|
[BAEKJOON] 10814๋ฒ : ๋์ด์ ์ ๋ ฌ (0) | 2021.12.11 |
[LeetCode] 389. Find the Difference (1) | 2020.03.25 |
[LeetCode] 397. Integer Replacement (0) | 2020.03.24 |
[LeetCode] 278. First Bad Version (0) | 2020.03.24 |