Lewis's Tech Keep

[백준] 상자넣기 본문

Java/알고리즘

[백준] 상자넣기

Lewis Seo 2021. 4. 2. 02:51

참고 : www.acmicpc.net/problem/1965

 

1965번: 상자넣기

정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가

www.acmicpc.net

아주 좋은 풀이 링크를 보고 풀었다. 갓.. (m.blog.naver.com/occidere/220788208204)

 

- dp 문제

- LIS 개념을 알면 잘 풀 수 있었던 문제. 좋은 거 배웠당.

- DP[i] : 1부터 i까지 최대로 감쌀 수 있는 박스 갯수 (증가 수열 갯수)

 

 

더보기
import java.io.*;
import java.util.*;

public class Solution {

    private static int n;
    private static int[] box;
    private static int[] dp;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        box = new int[n+2];
        dp = new int[n+2];
        int max = 0;
        for (int i = 1; i <= n; i++) {
            box[i] = sc.nextInt();
            dp[i] = 1;
        }
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                if(box[j] < box[i]) {
                    dp[i] = Math.max(dp[i], dp[j] + 1);
                }
            }
            max = Math.max(max, dp[i]);
        }
        System.out.println(max);
    }
}

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

[백준] 1,2,3 더하기  (0) 2021.04.05
[백준] 동물원  (0) 2021.04.04
[백준] 합분해  (0) 2021.03.31
[백준] 합분해 - 실패  (0) 2021.03.31
[백준] 점프  (0) 2021.03.30
Comments