본문 바로가기

다이나믹프로그래밍3

백준 2011번: 암호코드 경우의 수를 구하는 문제이다. 25114를 예시를 보면 1. 2,5,1,1,4 2. 2,5,1,14 3. 2,5,11,4 4. 25,1,14 5. 25,11,4 6. 25,1,1,4 위의 여섯 가지로 이루어져 있다. 백준 9095 번 문제와 규칙이 비슷한 양상으로 이루어졌다. dyii.tistory.com/7 백준 9095 번 : 1, 2, 3 더하기 dyii.tistory.com/6 백준 11727 번 : 2*n 타일링2 전에 풀었던 11726번 (2*n 타일링) 문제에 2 * 2 타일이 추가된 문제이다. dyii.tistory.com/5 백준 11726번 : 2*n 타일링 2 * 1 크기일 경우 1개 2 * 2 크기.. dyii.tistory.com 그래서 예시를 한 글자씩 따져보았다. 2 (1개) .. 2021. 3. 11.
백준 14002번: 가장 긴 증가하는 부분 수열 4 주어진 수열에서 가장 긴 증가하는 부분 수열을 고르는 문제이다. INPUT 6 10 20 10 30 20 50 OUTPUT 4 10 20 30 50 INPUT 5 3 4 1 2 3 OUTPUT 3 1 2 3 www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 위의 문제는 최댓값만 구하는 문제이고, 이번 문제는 최댓값과 수열을 같이 구하는 문제로 조금 더 응용이 필요하다. 6 10 20.. 2021. 3. 8.
백준 2579번 : 계단 오르기 규칙 세 가지를 지켜서 계단을 오르는 최댓값을 고르는 문제이다. 지켜야 할 규칙 1. 계단은 한 계단씩 또는 두 단계씩만 오를 수 있다. 2. 세 개의 계단을 연속적으로 밟을 수 없다. 3. 마지막 계단은 꼭 밟는다. 주의할 점. 1. 최댓값을 찾는데다가 밟을지 안 밟을지도 고려해야 하므로, 그 전의 기록을 계속 갖고 있어야 해서 기록을 하는 dp 배열이 필요하다. 2. 계단을 한 개 또는 두 개를 밟고 세 개를 연속적으로 밟을 수 없다는 것은, 지금의 계단에서 총 3개 아래의 값을 모두 확인해야 한다. 1. 첫 번째 계단을 밟는 경우. - 첫 번째 계단을 밟을 때 최댓값일 것이다. dp[0] = arr[0] 2. 두 번째 계단을 밟을 경우, - 두 번째 계단을 밟을 땐, 최댓값은 두 계단을 모두 밟는 .. 2021. 3. 5.