[BOJ] 1983번: 숫자 박스

https://www.acmicpc.net/problem/1983


D[a][b][c] : 윗칸의 수 a개, 밑칸의 수 b개를 2*c개의 칸에 배치했을 때 최댓값이라는 Dynamic table을 생각했을 때,


D[a][b][c] = max(D[a - 1][b][c - 1], D[a][b - 1][c - 1], D[a - 1][b - 1][c - 1] + box1[a - 1] * box2[b - 1]) 입니다. 점화식 자체는 간단한데, 문제는 예외처리를 빡세게 해주지 않으면 값이 음수가 될 경우를 잡아내지 못합니다.


(입력으로 1 // 1 // -1이 들어왔을 떄 정답은 -1이지만 예외처리를 안해주면 값이 0이 되어버릴 수 있음)


예외처리를 잘못해서 오래 애먹었습니다.


https://github.com/encrypted-def/BOJ/blob/master/1983.cpp

  Comments