songgj123   4년 전

일단 제 생각은 DP입니다.

cache[i][j][4]의 배열을 선언합니다.

배열의 의미는

좌표 (i, j)가 k번째로 저장됐을 때, 최대값입니다.

이게 성립한다고 생각한 이유는

i, j가 k번째로 더해져서 최대값이 되려면

주변 네 방향에서의 k-1번째 값 중에 최대값을 선택하면 되기 때문입니다.

그런데 이걸 직접 구현하니 칸을 반복해서 방문하는 경우가 생기더군요

일단 코드를 제외하더라도 제가 한 생각이 맞는지 궁금하네요

참고로

모든 모양을 배열로 저장해서 제출해보니 정답 나오네요....

혹시나 이게 진짜 풀이법은 아니겠죠??

chogahui05   4년 전

전 '개' 노가다로 풀었습니다. 모양 19가지를 모조리 배열에 넣어서..

dp도 가짓수가 많아지는 경우에는 노가다로 풀어야 하는 경우가 왕왕 있더라고요.

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