From 929f23cfa20aae8cd87d7c046becfa0e27634063 Mon Sep 17 00:00:00 2001 From: Donew <47556347+03do-new30@users.noreply.github.com> Date: Sun, 13 Jul 2025 15:20:27 +0900 Subject: [PATCH] =?UTF-8?q?[20250713]=20BOJ=20/=20G3=20/=20=EC=84=B8=20?= =?UTF-8?q?=EC=9A=A9=EC=95=A1=20/=20=EC=8B=A0=EB=8F=99=EC=9C=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... \354\204\270 \354\232\251\354\225\241.md" | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 "03do-new30/202507/13 BOJ G3 \354\204\270 \354\232\251\354\225\241.md" diff --git "a/03do-new30/202507/13 BOJ G3 \354\204\270 \354\232\251\354\225\241.md" "b/03do-new30/202507/13 BOJ G3 \354\204\270 \354\232\251\354\225\241.md" new file mode 100644 index 00000000..bdc6faa7 --- /dev/null +++ "b/03do-new30/202507/13 BOJ G3 \354\204\270 \354\232\251\354\225\241.md" @@ -0,0 +1,50 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + static int N; + static long[] arr, answer; + static long minAbs; + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + N = Integer.parseInt(br.readLine()); + arr = new long[N]; + StringTokenizer st = new StringTokenizer(br.readLine()); + for (int i = 0; i < N; i++) { + arr[i] = Long.parseLong(st.nextToken()); + } + Arrays.sort(arr); + minAbs = 3_000_000_000L; + for (int startIdx = 0; startIdx < N-2; startIdx++) { + twoPointer(startIdx); + } + for (long num : answer) { + System.out.print(num + " "); + } + br.close(); + } + + private static void twoPointer(int startIdx) { + int leftIdx = startIdx + 1; + int rightIdx = N-1; + while (leftIdx < rightIdx) { + long currentVal = arr[startIdx] + arr[leftIdx] + arr[rightIdx]; + long currentAbs = Math.abs(currentVal); + if (currentAbs < minAbs) { + minAbs = currentAbs; + answer = new long[] {arr[startIdx], arr[leftIdx], arr[rightIdx]}; + } + if (currentVal < 0) { + leftIdx++; + } else if (currentVal > 0) { + rightIdx--; + } else { + break; + } + } + } +} + +```