Skip to content

Commit cdd79e1

Browse files
authored
Merge pull request #459 from AlgorithmWithGod/03do-new30
[20250714] BOJ / G4 / 좋다 / 신동윤
2 parents 7e395e5 + 7c1f1ea commit cdd79e1

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
```java
2+
import java.util.*;
3+
import java.io.*;
4+
5+
public class Main {
6+
static int N, answer;
7+
static long[] arr;
8+
public static void main(String[] args) throws IOException {
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
N = Integer.parseInt(br.readLine());
11+
arr = new long[N];
12+
StringTokenizer st = new StringTokenizer(br.readLine());
13+
for (int i = 0; i < N; i++) {
14+
arr[i] = Long.parseLong(st.nextToken());
15+
}
16+
Arrays.sort(arr);
17+
answer = 0;
18+
for (int i = 0; i < N; i++) {
19+
twoPointer(i);
20+
}
21+
System.out.println(answer);
22+
23+
br.close();
24+
}
25+
private static void twoPointer(int targetIdx) {
26+
long target = arr[targetIdx];
27+
int leftIdx = 0;
28+
int rightIdx = N-1;
29+
while (leftIdx < rightIdx) {
30+
long sum = arr[leftIdx] + arr[rightIdx];
31+
if (target == sum) {
32+
if (leftIdx == targetIdx) {
33+
leftIdx++;
34+
} else if (rightIdx == targetIdx) {
35+
rightIdx--;
36+
} else {
37+
answer++;
38+
return;
39+
}
40+
}
41+
else if (sum < target) {
42+
leftIdx++;
43+
} else {
44+
rightIdx--;
45+
}
46+
}
47+
}
48+
49+
}
50+
```

0 commit comments

Comments
 (0)