PS/Baekjoon Online Judge

[백준 2352] 반도체 설계 [C]

kimyoungrok 2021. 9. 5. 15:04

백준 - 2352


풀이

"백준 12015, 가장 긴 증가하는 부분 수열 2"와 푸는 방식이 동일한 문제이다.


소스코드

#include <stdio.h>
int dp[1000001] = {1000001};

int main(){
    int N;
    scanf("%d", &N);
	
    int val, back = 0;
    for(int i = 0; i < N; i++){
        scanf("%d", &val);
		
        if(val > dp[back]) dp[++back] = val;
        else{
            int left = 0, right = back, mid, idx;
			
            while(left <= right){
                mid = (left+right) / 2;
                if (dp[mid] >= val) right = (idx = mid) -1;
                else left = mid + 1;	
            }
            dp[idx] = val;
        }
    }
    printf("%d", back + 1);
}

출처 및 참고자료

 

2352번: 반도체 설계

첫째 줄에 정수 n(1 ≤ n ≤ 40,000)이 주어진다. 다음 줄에는 차례로 1번 포트와 연결되어야 하는 포트 번호, 2번 포트와 연결되어야 하는 포트 번호, …, n번 포트와 연결되어야 하는 포트 번호가 주

www.acmicpc.net

 

 

[백준 12015] 가장 긴 증가하는 부분 수열 2 [C]

풀이 "백준 11053, 가장 긴 증가하는 부분 수열"보다 수열의 크기가 커, 기존의 방법대로 하면 시간초과가 발생한다. 수열 전체에서 binary search로 특정한 조건의 부분 수열을 탐색하는 방법은 아닌

kyr-db.tistory.com

'PS > Baekjoon Online Judge' 카테고리의 다른 글

[백준 11050] 이항 계수 1 [C]  (0) 2022.04.03
[백준 1002] 터렛 [C]  (0) 2022.04.03
[백준 10800] 컬러볼 [C]  (0) 2021.09.05
[백준 1377] 버블 소트 [C]  (0) 2021.09.05
[백준 17404] RGB거리 2 [C]  (0) 2021.09.05