playsworld16   3년 전

게시판을 쥐잡듯이 돌아서 보이는대로 test case를 넣어봤지만 별 이상 없습니다.

제가 한 방법은

2차원 벡터 dp (n*3) 를 설정합니다.

이때 dp[i][0] 은 i번째 칸 윗부분만 처리하는 경우의수,

dp[i][1] 은 아랫부분만, dp[i][2] 는 모두 처리하는 경우의 수로 했습니다. 물론 i-1까지는 모두 처리되어있습니다.

그리고 0과 n-1의 연결관계에 따라 4가지 경우의 수로 나눠서 각각 테스트 케이스마다 최대 4번 dp를 돌립니다.

0부터 n-1 까지 돌때마다 dp 연산을 4번 하는데, 각각 dp[i][0], dp[i][1], dp[i][2]를 구하고, 4번 째는 가로로 두개가 연결되었을때 (A[i] + A[i-1] <= w && B[i] + B[i-1] <= w) 의 dp[i][2]를 구합니다.

어디서 잘못된 걸까요?

- 코드 내림 -

pl0892029   3년 전

if (A[0] + A[n - 1] <= 2) {

이 부분 코딩미스 같습니다.

playsworld16   3년 전

이럴 수가... 정말 감사합니다!

댓글을 작성하려면 로그인해야 합니다.