https://www.acmicpc.net/problem/2960
์์ ์ ์์ ํ๋ณ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ ๋ช ํ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด ๊ด๋ จ ๋ฌธ์ ๋ฅผ ํผ ์ ์ด ์๋๋ฐ ๊ทธ๊ฑฐ๋์ ๋ค๋ฅธ ๋ฌธ์ ์ด๋ค. ๊ทธ๊ฑด ์๊ฐ ์ด๊ณผ๋๊ณ ์ด๋ ค์ ๋๋ฐ, ์ด ๋ฌธ์ ๋ ๊ทธ๋ฅ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด์ ์๋ฆฌ๋ฅผ ์ ์ฉํด์ ํ์ด๋ณด๋ ๋ฌธ์ ์ด๋ค.
์ซ์ N์ ๋ํด ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ ์ฉํ์ฌ ์์๊ฐ ์๋ ์๋ฅผ ์ง์๋๊ฐ ๋, K๋ฒ์งธ๋ก ์ง์์ง๋ ์๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค.
๊ฐ ์์ ์ง์์ก๋์ง ์ฌ๋ถ๋ฅผ ํ์ ํ boolean ๋ฐฐ์ด์ ๋ง๋ค์๋ค.
1. K๋ฒ์งธ๋ก ์ง์์ง๋ ์๋ฅผ ์ฐพ์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
1. ์์ง ์ง์ฐ์ง ์์ ์ ์ค ๊ฐ์ฅ ์์ ์ P๋ฅผ ์ฐพ๊ณ , ์ง์ด๋ค.
2. P์ ๋ฐฐ์๋ฅผ ์ฐพ์ ์ง์ด๋ค.
์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
boolean[] arr = new boolean[N + 1];
int count = 0;
int answer = 0;
while(true) {
//P ์ฐพ๊ธฐ
int P = 0;
for(int i = 2; i <= N; i++) {
if(!arr[i]) {
P = i;
break;
}
}
//P์ ๋ฐฐ์ ์ง์ฐ๊ธฐ
int i = 1;
int n = P * i;
while(n <= N) {
if(!arr[n]) {
arr[n] = true;
count++;
}
if(count == K) {
answer = n;
break;
}
i++;
n = P * i;
}
if(count == K) break;
}
System.out.println(answer);
}
}
๊ฒฐ๊ณผ
'Algorithm > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 18429๋ฒ - ๊ทผ์์ค (0) | 2022.08.28 |
---|---|
๋ฐฑ์ค 2596๋ฒ - ๋น๋ฐํธ์ง (0) | 2022.08.28 |
๋ฐฑ์ค 17608๋ฒ - ๋ง๋๊ธฐ (0) | 2022.08.21 |
๋ฐฑ์ค 1074๋ฒ - Z (0) | 2022.08.21 |
๋ฐฑ์ค 2839๋ฒ - ์คํ ๋ฐฐ๋ฌ (0) | 2022.08.21 |