๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/9753)
< ์ง ๊ณฑ >
๋ฌธ์ ํ์ด
๋ฏธ๋ฆฌ 100,000๊น์ง ์์๋ฅผ ๊ตฌํ๋ค. ์๋ก ๋ค๋ฅธ ์์์ ๊ณฑ์ ๊ตฌํด ArrayList์ ์ ์ฅํ์ฌ ์ ๋ ฌ ํ K๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๊ฐ ์ค์์ ๊ฐ์ฅ ์์ ๊ฐ์ ์ถ๋ ฅํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
public class _9753_ { // ์ง ๊ณฑ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(bf.readLine());
boolean arr[] = new boolean[100001];
for (int i = 2; i <= Math.sqrt(100001); i++) {
if (!arr[i]) {
for (int j = i * i; j < 100001; j += i) {
arr[j] = true;
}
}
}
ArrayList<Integer> result = new ArrayList<>();
for (int i = 2; i < 100001; i++) {
if (arr[i]) {
continue;
}
for (int j = i + 1; j < 100001; j++) {
if (arr[j]) {
continue;
}
if ((long) i * (long) j > 100001) {
break;
}
result.add(i * j);
}
}
Collections.sort(result);
for (int i = 0; i < T; i++) {
int K = Integer.parseInt(bf.readLine());
for (int num : result) {
if (num >= K) {
bw.write(num + "\n");
break;
}
}
}
bw.flush();
}
}
๋ณ์)
T : ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์
arr : ์์ ํ๋ณ
result : ์๋ก ๋ค๋ฅธ ์์์ ๊ณฑ์ ์ ์ฅํ ArrayList
ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๋จผ์ 2๋ถํฐ 100000๊น์ง ์์๋ฅผ ํ๋ณํ๋ค. ์๋ก ๋ค๋ฅธ ์์์ ๊ณฑ์ ๊ตฌํด ArrayList์ ์ ์ฅํ ํ ์ ๋ ฌํ๋ค. K๋ฅผ ์ ๋ ฅ๋ฐ์ ArrayList๋ฅผ ํ์ํ๋ฉฐ K๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ์ ์ค์์ ๊ฐ์ฅ ์์ ๊ฐ์ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 15705_๋จ์ด ์ฐพ๊ธฐ (1) | 2024.07.25 |
---|---|
[Baekjoon] 8989_์๊ณ (0) | 2024.07.24 |
[Baekjoon] 3231_์นด๋๋์ด (0) | 2024.07.22 |
[Baekjoon] 15595_์ ๋ต ๋น์จ ๊ณ์ฐํ๊ธฐ (0) | 2024.07.19 |
[Baekjoon] 2817_ALPS์ ํฌํ (1) | 2024.07.18 |