1937번 - 욕심쟁이 판다
제 알고리즘은 dfs에 dp 메모제이션을 이용해서 가지치기를 하는것입니다.
예를 들면 대나무숲을 방문해서 dfs로 가장 최대로 살수있는 날을 찾아
다른 배열에 저장해놓습니다. 그래서 방문한곳에 다시 온다면 그 자리의
최대값+1 을 넘겨줍니다. 이 방식으로 가지치기를 했습니다만 계속 틀린답이네요
반례를 찾기 힘들어서 질문글을 남깁니다.
아..마지막에 음수랑 0도 정수안에 포함되나 해서 다 만들어놓은거에 추가 구현하여
코드가 지저분합니다. 제가 놓친 부분이 무엇일까요
입력에 음수, 0이 들어올 경우 틀리도록 했는데 정답인걸 봐서 입력은 전부 양수인것 같네요
일단 배열의 범위를 체크해 보세요.
(0, 0) 부터 체크할 경우 if (map[nx][ny] > map[x][y]) 에서 nx = -1, ny = 0 이 들어가요.
416 15 14 139 10 11 128 7 6 51 2 3 4
답 16
댓글을 작성하려면 로그인해야 합니다.
ygo22 7년 전
제 알고리즘은 dfs에 dp 메모제이션을 이용해서 가지치기를 하는것입니다.
예를 들면 대나무숲을 방문해서 dfs로 가장 최대로 살수있는 날을 찾아
다른 배열에 저장해놓습니다. 그래서 방문한곳에 다시 온다면 그 자리의
최대값+1 을 넘겨줍니다. 이 방식으로 가지치기를 했습니다만 계속 틀린답이네요
반례를 찾기 힘들어서 질문글을 남깁니다.
아..마지막에 음수랑 0도 정수안에 포함되나 해서 다 만들어놓은거에 추가 구현하여
코드가 지저분합니다. 제가 놓친 부분이 무엇일까요