Skip to content

Commit e791ae0

Browse files
authored
[20260218] BOJ / G5 / 두 수의 합 / 이인희
1 parent 5169f33 commit e791ae0

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
```java
2+
import java.io.BufferedReader;
3+
import java.io.IOException;
4+
import java.io.InputStreamReader;
5+
import java.util.Arrays;
6+
import java.util.StringTokenizer;
7+
8+
public class Main {
9+
public static void main(String[] args) throws IOException {
10+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
11+
int t = Integer.parseInt(br.readLine());
12+
StringBuilder sb = new StringBuilder();
13+
while (t-- > 0) {
14+
StringTokenizer st = new StringTokenizer(br.readLine());
15+
int n = Integer.parseInt(st.nextToken());
16+
int K = Integer.parseInt(st.nextToken());
17+
int[] arr = new int[n];
18+
st = new StringTokenizer(br.readLine());
19+
for (int i = 0; i < n; i++) {
20+
arr[i] = Integer.parseInt(st.nextToken());
21+
}
22+
23+
Arrays.sort(arr);
24+
int l = 0;
25+
int r = n - 1;
26+
int minDiff = Integer.MAX_VALUE;
27+
int count = 0;
28+
29+
while (l < r) {
30+
int sum = arr[l] + arr[r];
31+
int diff = Math.abs(K - sum);
32+
33+
if (diff < minDiff) {
34+
minDiff = diff;
35+
count = 1;
36+
} else if (diff == minDiff) {
37+
count++;
38+
}
39+
if (sum < K) {
40+
l++;
41+
} else {
42+
r--;
43+
}
44+
}
45+
sb.append(count).append("\n");
46+
}
47+
48+
System.out.print(sb);
49+
}
50+
}
51+
52+
```

0 commit comments

Comments
 (0)