LIS
-
[DP] BOJ 11053 번 문제 풀이백준 문제풀이/Dynamic Programming 2019. 5. 13. 15:05
문제분석 DP 유형의 문제들은 점화식을 도출하는 것이 문제의 전부입니다!! D[i] = i 번째 인덱스를 마지막으로 하는 수열의 최대 길이 arr[i] = 주어진 수열 이라고 정의하고 시작하겠습니다. 그러면, D[1] = 1 은 자명합니다. D[2] 부터는 주어진 수열의 데이터를 비교해야 합니다. 1. 이전 값 중에 arr[2] 보다 작은 값들을 모두 후보 인덱스로 둡니다. 2. D[후보 인덱스] 중에 최댓값을 구합니다. 3. 그 최댓값에 자기 자신인 1을 더해줍니다. 설명이 조금 복잡하니 예시문제로 다시 봅시다. 10 20 10 30 20 50 이러한 수열이 있습니다. 이때, D[4] 를 구하고자 합니다. 그러면 우선 arr[4] = 30 의 값 보다 작은 값들을 이전 인덱스에서 색출합니다. 10 20..