알고리즘/백준
[백준 2352] 반도체 설계
동 코
2020. 5. 15. 14:42
문제풀이
c++로만 풀다가 첨으로 java로 푼 문제이다.
가장 긴 오름차순 수열을 찾는 LIS문제와 동일하다.
마지막 인덱스 접근을 위해 초기에 0을 넣어두고 사용한다.
마지막 인덱스를 size-1로 접근하는데 없으면 에러뜨기때문..
마지막보다 큰값이 들어오면 뒤에 삽입. 작거나 같은값이 들어오면 lower_bound값을 찾아 그값과 변경한다.
소스코드
더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Baekjoon2352 {
static int numPort;
static List<Integer> port;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
numPort = scan.nextInt();
port = new ArrayList<Integer>();
port.add(0);
for(int i=0;i<numPort;i++){
int temp = scan.nextInt();
if(port.get(port.size()-1) < temp) //끝값 보다 클
port.add(temp);
else {
int idx = 0;
for (int j = 0; j < numPort; j++) {
if (temp <= port.get(j)) {
idx = j;
break;
}
}
port.set(idx, temp);
}
}
System.out.println(port.size()-1);
}
}
|
cs |
문제 링크 : www.acmicpc.net/problem/2352
2352번: 반도체 설계
첫째 줄에 정수 n(1 ≤ n ≤ 40,000)이 주어진다. 다음 줄에는 차례로 1번 포트와 연결되어야 하는 포트 번호, 2번 포트와 연결되어야 하는 포트 번호, …, n번 포트와 연결되어야 하는 포트 번호가 주
www.acmicpc.net