๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/11502)
< ์ธ ๊ฐ์ ์์ ๋ฌธ์ >
๋ฌธ์ ํ์ด
๋ชจ๋ ์ธ ์์๋ฅผ ๋ํด๋ณด๋ฉฐ ๊ฐ๋ฅํ์ง ํ๋จํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class _11502_ { // ์ธ ๊ฐ์ ์์ ๋ฌธ์
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[1000];
arr[0] = true;
arr[1] = true;
for (int i = 2; i < 501; i++) {
if (!arr[i]) {
for (int j = i + i; j < 1000; j += i) {
arr[j] = true;
}
}
}
for (int i = 0; i < t; i++) {
int k = Integer.parseInt(bf.readLine());
boolean flag = false;
for (int a = 2; a <= k; a++) {
if (!arr[a]) {
for (int b = a; b <= k - a; b++) {
if (!arr[b]) {
if (!arr[k - a - b]) {
bw.write(a + " " + b + " " + (k - a - b) + "\n");
flag = true;
break;
}
}
}
if (flag) {
break;
}
}
}
if (!flag) {
bw.write("0\n");
}
}
bw.flush();
}
}
๋ณ์)
t : ํ ์คํธ ์ผ์ด์ค ์
arr : ์์ ํ๋จ
k : ์ ์
flag : ์ธ ์์์ ํฉ์ผ๋ก ํํ ๊ฐ๋ฅ ์ฌ๋ถ
ํ ์คํธ ์ผ์ด์ค ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๋จผ์ 2~999๊น์ง์ ์์๋ฅผ ํ๋จํ์ฌ arr์ ์์ ์ฌ๋ถ๋ฅผ ์ ์ฅํ๋ค. ํ ์คํธ ์ผ์ด์ค ์๋งํผ ์ ์ k๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) a : 2๋ถํฐ k๊น์ง ๋ฐ๋ณตํ๋ค.
2) ๋ง์ฝ a๊ฐ ์์๋ผ๋ฉด b : a๋ถํฐ k-a๊น์ง ๋ฐ๋ณตํ๋ค.
3) ๋ง์ฝ b๊ฐ ์์๋ผ๋ฉด k-a-b๊ฐ ์์์ธ์ง ํ๋จํ๋ค. k-a-b๊ฐ ์์๋ผ๋ฉด ๊ทธ ๊ฐ์ ์ถ๋ ฅํ ํ ์ข ๋ฃํ๋ค.
4) ์ธ ์์์ ํฉ์ผ๋ก ํํ๋๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ฉด 0์ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 11055_๊ฐ์ฅ ํฐ ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด (0) | 2024.05.10 |
---|---|
[Baekjoon] 1051_์ซ์ ์ ์ฌ๊ฐํ (0) | 2024.05.09 |
[Baekjoon] 1963_์์ ๊ฒฝ๋ก (0) | 2024.05.07 |
[Baekjoon] 1986_์ฒด์ค (0) | 2024.05.03 |
[Baekjoon] 13022_๋๋์ ์ฌ๋ฐ๋ฅธ ๋จ์ด (1) | 2024.05.02 |