From 7c1f1ea2a89c3ff89806b9212ba50a1e14325bc3 Mon Sep 17 00:00:00 2001 From: Donew <47556347+03do-new30@users.noreply.github.com> Date: Mon, 14 Jul 2025 08:56:22 +0900 Subject: [PATCH] =?UTF-8?q?[20250714]=20BOJ=20/=20G4=20/=20=EC=A2=8B?= =?UTF-8?q?=EB=8B=A4=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 --- .../14 BOJ G4 \354\242\213\353\213\244.md" | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 "03do-new30/202507/14 BOJ G4 \354\242\213\353\213\244.md" diff --git "a/03do-new30/202507/14 BOJ G4 \354\242\213\353\213\244.md" "b/03do-new30/202507/14 BOJ G4 \354\242\213\353\213\244.md" new file mode 100644 index 00000000..04a56107 --- /dev/null +++ "b/03do-new30/202507/14 BOJ G4 \354\242\213\353\213\244.md" @@ -0,0 +1,50 @@ +```java +import java.util.*; +import java.io.*; + +public class Main { + static int N, answer; + static long[] arr; + 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); + answer = 0; + for (int i = 0; i < N; i++) { + twoPointer(i); + } + System.out.println(answer); + + br.close(); + } + private static void twoPointer(int targetIdx) { + long target = arr[targetIdx]; + int leftIdx = 0; + int rightIdx = N-1; + while (leftIdx < rightIdx) { + long sum = arr[leftIdx] + arr[rightIdx]; + if (target == sum) { + if (leftIdx == targetIdx) { + leftIdx++; + } else if (rightIdx == targetIdx) { + rightIdx--; + } else { + answer++; + return; + } + } + else if (sum < target) { + leftIdx++; + } else { + rightIdx--; + } + } + } + +} +```