3장 다이나믹 프로그래밍 - (3) 문제 풀이 4 [9465번 - 스티커]
1. 문제 설명n번째 열의 스티커를 뗀 상태를 정의하였다.n번째 열 1행, 2행 모두 떼지 않은 경우의 상태를 01행만 뗀 경우의 상태를 12행만 뗀 경우의 상태를 2라고 정의하였다. d[s][n] : n번째 열의 상태가 s 일 때 최고 점수 p0 : 1행의 점수를 저장한 배열p1 : 2행의 점수를 저장한 배열 d[0][n] = max(d[0][n-1], d[1][n-1], d[2][n-2])d[1][n] = max(d[0][n-1], d[2][n-1])+p0[n]d[2][n] = max(d[0][n-1], d[1][n-1])+p1[n]정답 : max(d[0][n],d[1][n],d[2][n]) 2. 소스 코드 #include #include using namespace std; int d[3][1000..
백준 알고리즘 기초 강좌
2017. 8. 17. 16:43