From 265a2fe0bd0d518a4737d9f799655a42b811dc42 Mon Sep 17 00:00:00 2001 From: LiiNi-coder <97495437+LiiNi-coder@users.noreply.github.com> Date: Fri, 3 Oct 2025 23:57:11 +0900 Subject: [PATCH] =?UTF-8?q?[20251003]=20BOJ=20/=20G5=20/=20=EB=B8=94?= =?UTF-8?q?=EB=9E=99=20=ED=94=84=EB=9D=BC=EC=9D=B4=EB=8D=B0=EC=9D=B4=20/?= =?UTF-8?q?=20=EC=9D=B4=EC=9D=B8=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...74\354\235\264\353\215\260\354\235\264.md" | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 "LiiNi-coder/202510/03 BOJ \353\270\224\353\236\231 \355\224\204\353\235\274\354\235\264\353\215\260\354\235\264.md" diff --git "a/LiiNi-coder/202510/03 BOJ \353\270\224\353\236\231 \355\224\204\353\235\274\354\235\264\353\215\260\354\235\264.md" "b/LiiNi-coder/202510/03 BOJ \353\270\224\353\236\231 \355\224\204\353\235\274\354\235\264\353\215\260\354\235\264.md" new file mode 100644 index 00000000..28637823 --- /dev/null +++ "b/LiiNi-coder/202510/03 BOJ \353\270\224\353\236\231 \355\224\204\353\235\274\354\235\264\353\215\260\354\235\264.md" @@ -0,0 +1,70 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + int N = Integer.parseInt(st.nextToken()); + int C = Integer.parseInt(st.nextToken()); + int[] arr = new int[N]; + st = new StringTokenizer(br.readLine()); + for (int i = 0; i < N; i++) { + arr[i] = Integer.parseInt(st.nextToken()); + } + + Arrays.sort(arr); + + //1개 확인 + for(int i = 0; i < N; i++){ + if (arr[i] == C) { + System.out.println(1); + return; + } + } + + //2개 확인(투포인터 사용) + int l = 0, r = N - 1; + while(l < r){ + int sum = arr[l] + arr[r]; + if(sum == C){ + System.out.println(1); + return; + } + if(sum < C) + l++; + else + r--; + } + + //3개 확인(중간값 정하고 나머지값 투포인터로 찾기) + for(int i = 0; i < N; i++){ + int target = C - arr[i]; + int left = 0, right = N - 1; + while(left < right){ + if(left == i){ + left++; + continue; + } + if(right == i){ + right--; + continue; + } + int sum = arr[left] + arr[right]; + if(sum == target){ + System.out.println(1); + return; + } + if(sum < target) + left++; + else + right--; + } + } + + System.out.println(0); + } +} + +```