아무코딩

[백준 2352] 반도체 설계 본문

알고리즘/백준

[백준 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

 

'알고리즘 > 백준' 카테고리의 다른 글

[백준 17070] 파이프 옮기기1 (java)  (0) 2020.05.19
[백준 2623] 음악프로그램 (java)  (0) 2020.05.18
[백준 17281] 야구  (0) 2020.05.12
[백준 2580] 스도쿠  (0) 2020.05.11
[백준 1300] k번째수  (0) 2020.05.08
Comments