From f01ce2c8dd3c240a6e0a6bdadc758134fca3246c Mon Sep 17 00:00:00 2001 From: zinnnn37 Date: Sun, 14 Sep 2025 12:20:27 +0900 Subject: [PATCH] =?UTF-8?q?[20250914]=20BOJ=20/=20G5=20/=200=20=EB=A7=8C?= =?UTF-8?q?=EB=93=A4=EA=B8=B0=20/=20=EA=B9=80=EB=AF=BC=EC=A7=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 \353\247\214\353\223\244\352\270\260.md" | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 "zinnnn37/202509/14 BOJ G5 0 \353\247\214\353\223\244\352\270\260.md" diff --git "a/zinnnn37/202509/14 BOJ G5 0 \353\247\214\353\223\244\352\270\260.md" "b/zinnnn37/202509/14 BOJ G5 0 \353\247\214\353\223\244\352\270\260.md" new file mode 100644 index 00000000..a84fdd8c --- /dev/null +++ "b/zinnnn37/202509/14 BOJ G5 0 \353\247\214\353\223\244\352\270\260.md" @@ -0,0 +1,99 @@ +```java +package etc; + +import java.io.*; +import java.util.ArrayList; +import java.util.List; + +public class BJ_7490_0_만들기 { + + private static final String OPS = " +-"; + + private static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + private static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + private static final StringBuilder sb = new StringBuilder(); + + private static int N; + private static char[] ops; + + public static void main(String[] args) throws IOException { + int T = Integer.parseInt(br.readLine()); + ops = new char[10]; + + while (T-- > 0) { + sol(); + if (T > 0) { + sb.append("\n"); + } + } + bw.write(sb.toString()); + bw.flush(); + bw.close(); + br.close(); + } + + private static void sol() throws IOException { + N = Integer.parseInt(br.readLine()); + + for (int i = 0; i < 3; i++) { + char o = OPS.charAt(i); + ops[2] = o; + dfs(2); + } + } + + private static void dfs(int num) { + if (num == N) { + if (isValid()) { + appendString(); + } + return; + } + + for (int i = 0; i < 3; i++) { + char o = OPS.charAt(i); + ops[num + 1] = o; + dfs(num + 1); + } + } + + private static boolean isValid() { + List nums = new ArrayList<>(); + + // 공백 처리 + int idx = 0; + while (++idx <= N) { + int num = idx; + while (idx < N && ops[idx + 1] == ' ') { + idx++; + num = num * 10 + idx; + } + nums.add(num); + } + + int res = nums.get(0); + int opIdx = 2; + + for (int i = 1; i < nums.size(); i++) { + // 공백 건너뛰기 + while (opIdx <= N && ops[opIdx] == ' ') opIdx++; + + if (ops[opIdx] == '+') { + res += nums.get(i); + } else { + res -= nums.get(i); + } + opIdx++; + } + + return res == 0; + } + + private static void appendString() { + for (int i = 1; i < N; i++) { + sb.append(i).append(ops[i + 1]); + } + sb.append(N).append('\n'); + } +} +``` \ No newline at end of file