From 44d76574e80c741cc833093ad2a2772b4194bbd2 Mon Sep 17 00:00:00 2001 From: Ukj0ng <90972240+Ukj0ng@users.noreply.github.com> Date: Tue, 4 Nov 2025 20:23:09 +0900 Subject: [PATCH] =?UTF-8?q?[20251104]=20BOJ=20/=20G2=20/=20=EA=B1=B4?= =?UTF-8?q?=EB=AC=BC=20=EB=B0=A9=EB=AC=B8=ED=95=98=EA=B8=B0=20/=20?= =?UTF-8?q?=ED=95=9C=EC=A2=85=EC=9A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...51\353\254\270\355\225\230\352\270\260.md" | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 "Ukj0ng/202511/04 BOJ G2 \352\261\264\353\254\274 \353\260\251\353\254\270\355\225\230\352\270\260.md" diff --git "a/Ukj0ng/202511/04 BOJ G2 \352\261\264\353\254\274 \353\260\251\353\254\270\355\225\230\352\270\260.md" "b/Ukj0ng/202511/04 BOJ G2 \352\261\264\353\254\274 \353\260\251\353\254\270\355\225\230\352\270\260.md" new file mode 100644 index 00000000..07bef32d --- /dev/null +++ "b/Ukj0ng/202511/04 BOJ G2 \352\261\264\353\254\274 \353\260\251\353\254\270\355\225\230\352\270\260.md" @@ -0,0 +1,67 @@ +``` +import java.io.*; +import java.util.*; + +public class Main { + private static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + private static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + private static TreeMap> map; + private static int N, H, W; + public static void main(String[] args) throws IOException { + init(); + int answer = greedy(); + + bw.write(answer + "\n"); + bw.flush(); + bw.close(); + br.close(); + } + + private static void init() throws IOException { + StringTokenizer st = new StringTokenizer(br.readLine()); + N = Integer.parseInt(st.nextToken()); + H = Integer.parseInt(st.nextToken()); + W = Integer.parseInt(st.nextToken()); + + map = new TreeMap<>(); + + for (int i = 0; i < N; i++) { + st = new StringTokenizer(br.readLine()); + + int x = Integer.parseInt(st.nextToken()); + int y = Integer.parseInt(st.nextToken()); + + if (!map.containsKey(x)) map.put(x, new ArrayList<>()); + map.get(x).add(y); + } + + for (int key : map.keySet()) { + Collections.sort(map.get(key)); + } + } + + private static int greedy() { + int answer = 0; + int[] start = new int[2]; + start[0] = 1; + start[1] = 1; + + for (int floor : map.keySet()) { + answer += (floor-start[0]) * 100; + start[0] = floor; + int leftDist = Math.abs(map.get(floor).get(0) - start[1]); + int rightDist = Math.abs(map.get(floor).get(map.get(floor).size()-1) - start[1]); + + if (leftDist <= rightDist) { + answer += (leftDist + map.get(floor).get(map.get(floor).size()-1) - map.get(floor).get(0)); + start[1] = map.get(floor).get(map.get(floor).size()-1); + } else { + answer += (rightDist + map.get(floor).get(map.get(floor).size()-1) - map.get(floor).get(0)); + start[1] = map.get(floor).get(0); + } + } + + return answer; + } +} +```