1006번 - 습격자 초라기
게시판을 쥐잡듯이 돌아서 보이는대로 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]를 구합니다.
어디서 잘못된 걸까요?
- 코드 내림 -
if (A[0] + A[n - 1] <= 2) {
이 부분 코딩미스 같습니다.
이럴 수가... 정말 감사합니다!
댓글을 작성하려면 로그인해야 합니다.
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]를 구합니다.
어디서 잘못된 걸까요?
- 코드 내림 -