Notice
                              
                          
                        
                          
                          
                            Recent Posts
                            
                        
                          
                          
                            Recent Comments
                            
                        
                          
                          
                            Link
                            
                        
                    | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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 | 
                            Tags
                            
                        
                          
                          - RootMotion
- UnrealEngine5
- const
- RVO
- winapi
- 1563
- IFileDialog
- 줄 세우기
- NRVO
- 백준
- C++
- Unreal Engine5
- algorithm
- 언리얼엔진5
- 오블완
- TObjectPtr
- Programmers
- 프로그래머스
- GeeksForGeeks
- Frustum
- 2294
- baekjoon
- C
- directx
- UE5
- softeer
- 티스토리챌린지
- DirectX11
- 팰린드롬 만들기
- UnrealEngine4
                            Archives
                            
                        
                          
                          - Today
- Total
Game Develop
[Algorithm] Baekjoon 1965번 : 상자넣기 본문
https://www.acmicpc.net/problem/1965
1965번: 상자넣기
정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가
www.acmicpc.net
| 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 36 37 | int n; int boxes[1001] = { 0 }; int dp[1001] = { 0 }; int main() {     ios::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     cin >> n;     for (int i = 1; i <= n; ++i)     {         cin >> boxes[i];     }     dp[0] = 1;     int answer = 0;     for (int i = 1; i <= n; ++i)     {         dp[i] = 1;         for (int j = 1; j < i; ++j)         {             if (boxes[i] > boxes[j])             {                 dp[i] = max(dp[i], dp[j] + 1);             }         }         answer = max(answer, dp[i]);     }     cout << answer; } | cs | 
LIS문제랑 거의 동일하다 (최장증가부분수열)
혹시나 까먹지 말아야할 건, 출력해야되는 값은 DP[N]이 아니란것만 잊지말자.
갱신할때마다 따로 최대값을 갱신해줘야한다.
'Algorithm > Baekjoon' 카테고리의 다른 글
| [Algorithm] Baekjoon 2011번 : 암호코드 (0) | 2023.04.24 | 
|---|---|
| [Algorithm] Baekjoon 2225번 : 합분해 (0) | 2023.04.24 | 
| [Algorithm] Baekjoon 1890번 : 점프 (0) | 2023.04.23 | 
| [Algorithm] Baekjoon 1520번 : 내리막 길 (0) | 2023.04.23 | 
| [Algorithm] Baekjoon 2294번 : 동전 2 (0) | 2023.04.23 | 
