From 531c3104f49bf3fcf0fa82a7e368a89cd08b16d7 Mon Sep 17 00:00:00 2001 From: LiiNi-coder <97495437+LiiNi-coder@users.noreply.github.com> Date: Wed, 27 Aug 2025 22:59:27 +0900 Subject: [PATCH] =?UTF-8?q?[20250827]=20BOJ=20/=20G5=20/=20A=EC=99=80=20B?= =?UTF-8?q?=202=20/=20=EC=9D=B4=EC=9D=B8=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../202508/27 BOJ A\354\231\200 B 2.md" | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 "LiiNi-coder/202508/27 BOJ A\354\231\200 B 2.md" diff --git "a/LiiNi-coder/202508/27 BOJ A\354\231\200 B 2.md" "b/LiiNi-coder/202508/27 BOJ A\354\231\200 B 2.md" new file mode 100644 index 00000000..a823518e --- /dev/null +++ "b/LiiNi-coder/202508/27 BOJ A\354\231\200 B 2.md" @@ -0,0 +1,40 @@ +```java +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class Main { + private static String S, T; + private static boolean isFind = false; + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + S = br.readLine(); + T = br.readLine(); + + dfs(T); + System.out.println(isFind ? 1 : 0); + } + + private static void dfs(String cur) { + if (isFind) + return; + if (cur.length() == S.length()) { + if (cur.equals(S)) isFind = true; + return; + } + + // 마지막이 A라면 A 제거 + if (cur.charAt(cur.length() - 1) == 'A') { + dfs(cur.substring(0, cur.length() - 1)); + } + + // 첫 글자가 B라면 B 제거 후 뒤집기 + if (cur.charAt(0) == 'B') { + StringBuilder sb = new StringBuilder(cur.substring(1)); + dfs(sb.reverse().toString()); + } + } +} + +```