Skip to content

Commit 2f8b670

Browse files
authored
[20250920] BOJ / G2 / 가장 긴 증가하는 부분 수열 3 / 이준희
1 parent d5b9eb0 commit 2f8b670

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
public static void main(String[] args) throws Exception {
7+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
8+
StringTokenizer st;
9+
int n = Integer.parseInt(br.readLine());
10+
int[] arr = new int[n];
11+
12+
st = new StringTokenizer(br.readLine());
13+
for (int i = 0; i < n; i++) {
14+
arr[i] = Integer.parseInt(st.nextToken());
15+
}
16+
17+
int[] lis = new int[n];
18+
int size = 0;
19+
20+
for (int num : arr) {
21+
int pos = lowerBound(lis, 0, size, num);
22+
lis[pos] = num;
23+
if (pos == size) size++;
24+
}
25+
26+
System.out.println(size);
27+
}
28+
29+
static int lowerBound(int[] arr, int left, int right, int num) {
30+
while (left < right) {
31+
int mid = (left + right) / 2;
32+
if (arr[mid] < num) {
33+
left = mid + 1;
34+
} else {
35+
right = mid;
36+
}
37+
}
38+
return left;
39+
}
40+
}
41+
```

0 commit comments

Comments
 (0)