From 3f3068d8cbb7a88ae4862e74facdfc8a0d851ae9 Mon Sep 17 00:00:00 2001 From: JHLEE325 <82587652+JHLEE325@users.noreply.github.com> Date: Fri, 12 Sep 2025 08:12:59 +0900 Subject: [PATCH] =?UTF-8?q?[20250912]=20BOJ=20/=20G5=20/=20=ED=86=B1?= =?UTF-8?q?=EB=8B=88=EB=B0=94=ED=80=B4=20(2)=20/=20=EC=9D=B4=EC=A4=80?= =?UTF-8?q?=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...53\213\210\353\260\224\355\200\264 (2).md" | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 "JHLEE325/202509/12 BOJ G5 \355\206\261\353\213\210\353\260\224\355\200\264 (2).md" diff --git "a/JHLEE325/202509/12 BOJ G5 \355\206\261\353\213\210\353\260\224\355\200\264 (2).md" "b/JHLEE325/202509/12 BOJ G5 \355\206\261\353\213\210\353\260\224\355\200\264 (2).md" new file mode 100644 index 00000000..d93d57dd --- /dev/null +++ "b/JHLEE325/202509/12 BOJ G5 \355\206\261\353\213\210\353\260\224\355\200\264 (2).md" @@ -0,0 +1,79 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + + static List> wheel = new ArrayList<>(); + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int t = Integer.parseInt(br.readLine()); + + for (int i = 0; i < t; i++) { + String line = br.readLine(); + Deque dq = new LinkedList<>(); + for (char c : line.toCharArray()) { + dq.add(c - '0'); + } + wheel.add(dq); + } + + int k = Integer.parseInt(br.readLine()); + + for (int i = 0; i < k; i++) { + StringTokenizer st = new StringTokenizer(br.readLine()); + int num = Integer.parseInt(st.nextToken()) - 1; + int dir = Integer.parseInt(st.nextToken()); + + int[] dirs = new int[t]; + dirs[num] = dir; + + for (int j = num; j > 0; j--) { + int left = ((LinkedList) wheel.get(j - 1)).get(2); + int right = ((LinkedList) wheel.get(j)).get(6); + if (left != right) { + dirs[j - 1] = -dirs[j]; + } else { + break; + } + } + + for (int j = num; j < t - 1; j++) { + int left = ((LinkedList) wheel.get(j)).get(2); + int right = ((LinkedList) wheel.get(j + 1)).get(6); + if (left != right) { + dirs[j + 1] = -dirs[j]; + } else { + break; + } + } + + for (int j = 0; j < t; j++) { + if (dirs[j] != 0) { + rotate(j, dirs[j]); + } + } + } + + int score = 0; + for (int i = 0; i < t; i++) { + if (wheel.get(i).peekFirst() == 1) { + score++; + } + } + System.out.println(score); + } + + public static void rotate(int idx, int dir) { + if (dir == 1) { + int last = wheel.get(idx).pollLast(); + wheel.get(idx).addFirst(last); + } else { + int first = wheel.get(idx).pollFirst(); + wheel.get(idx).addLast(first); + } + } +} + +```