From 7a5a7e2723bdfeb267db0116819b9b331ab56e73 Mon Sep 17 00:00:00 2001 From: LiiNi-coder <97495437+LiiNi-coder@users.noreply.github.com> Date: Tue, 9 Sep 2025 23:01:53 +0900 Subject: [PATCH] =?UTF-8?q?[20250909]=20BOJ=20/=20G4=20/=20=EC=A0=84?= =?UTF-8?q?=EA=B5=AC=EC=99=80=20=EC=8A=A4=EC=9C=84=EC=B9=98=20/=20?= =?UTF-8?q?=EC=9D=B4=EC=9D=B8=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 \354\212\244\354\234\204\354\271\230.md" | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 "LiiNi-coder/202509/09 BOJ \354\240\204\352\265\254\354\231\200 \354\212\244\354\234\204\354\271\230.md" diff --git "a/LiiNi-coder/202509/09 BOJ \354\240\204\352\265\254\354\231\200 \354\212\244\354\234\204\354\271\230.md" "b/LiiNi-coder/202509/09 BOJ \354\240\204\352\265\254\354\231\200 \354\212\244\354\234\204\354\271\230.md" new file mode 100644 index 00000000..3a18e79d --- /dev/null +++ "b/LiiNi-coder/202509/09 BOJ \354\240\204\352\265\254\354\231\200 \354\212\244\354\234\204\354\271\230.md" @@ -0,0 +1,46 @@ +```java +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Arrays; + +public class Main { + public static void main(String[] args) throws IOException { + var br = new BufferedReader(new InputStreamReader(System.in)); + int n = Integer.parseInt(br.readLine()); + char[] src = br.readLine().toCharArray(); + char[] dst = br.readLine().toCharArray(); + int answer = process(Arrays.copyOf(src, n), dst, false); + answer = Math.min(answer, process(Arrays.copyOf(src, n), dst, true)); + + System.out.println(answer == Integer.MAX_VALUE ? -1 : answer); + } + static int process(char[] s, char[] target, boolean firstPress) { + int count = 0; + // 첫번째 토글로 그리디 분기 + if (firstPress) { + toggle(s, 0); + toggle(s, 1); + count++; + } + for (int i = 1; i < s.length; i++) { + if (s[i - 1] != target[i - 1]) { + toggle(s, i - 1); + toggle(s, i); + if (i + 1 < s.length) + toggle(s, i + 1); + count++; + } + } + + for (int i = 0; i < s.length; i++) { + if (s[i] != target[i]) return Integer.MAX_VALUE; + } + return count; + } + + static void toggle(char[] arr, int i) { + arr[i] = arr[i] == '0' ? '1' : '0'; + } +} +```