hyeok5596   2년 전

질문 게시판에 올라온 대부분의 반례에 대해서는 정답이지만, 

아래와 같은 반례를 발견했습니다.

10
0 0 64 32 32 0 0 0 0 0
0 32 32 64 0 0 0 0 0 0
0 0 128 0 0 0 0 0 0 0
64 64 128 0 0 0 0 0 0 0
0 0 64 32 32 0 0 0 0 0
0 32 32 64 0 0 0 0 0 0
0 0 128 0 0 0 0 0 0 0
64 64 128 0 0 0 0 0 0 0
128 32 0 0 0 0 0 0 0 0
0 0 128 0 0 0 0 0 0 0

answer : 1024

my result : 512

일단 위의 반례에서 최소 6번은 이동해야 1024라는 값을 얻어낼 수 있을 것 같은데

어떻게 5번 안에 1024라는 값을 얻어낼 수 있는지를 모르겠습니다.

그리고 아래와 같은 백트래킹 방식으로 구현했는데 어느 부분이 논리적으로 틀린 부분인지 찾을 수가 없습니다.

static void allMove(int[][] block, int moveCnt) {

if(moveCnt == 5)
return;

upMove(block, moveCnt);
downMove(block, moveCnt);
leftMove(block, moveCnt);
rightMove(block, moveCnt);
}

전체 소스 코드 첨부합니다.

도움 요청드립니다. 감사합니다.


papower1   1년 전

저도 아직 이 문제를 풀지 못해 여러 예제를 대입해보는 중인데용.

예시로 든 문제는 5번에 1024가 가능함을 확인하였습니다.

아래는 제 결과입니다.

---


initial

0 0 64 32 32 0 0 0 0 0

0 32 32 64 0 0 0 0 0 0

0 0 128 0 0 0 0 0 0 0

64 64 128 0 0 0 0 0 0 0

0 0 64 32 32 0 0 0 0 0

0 32 32 64 0 0 0 0 0 0

0 0 128 0 0 0 0 0 0 0

64 64 128 0 0 0 0 0 0 0

128 32 0 0 0 0 0 0 0 0

0 0 128 0 0 0 0 0 0 0

right

0 0 0 0 0 0 0 0 64 64

0 0 0 0 0 0 0 0 64 64

0 0 0 0 0 0 0 0 0 128

0 0 0 0 0 0 0 0 128 128

0 0 0 0 0 0 0 0 64 64

0 0 0 0 0 0 0 0 64 64

0 0 0 0 0 0 0 0 0 128

0 0 0 0 0 0 0 0 128 128

0 0 0 0 0 0 0 0 128 32

0 0 0 0 0 0 0 0 0 128

top

0 0 0 0 0 0 0 0 128 128

0 0 0 0 0 0 0 0 128 256

0 0 0 0 0 0 0 0 128 128

0 0 0 0 0 0 0 0 256 256

0 0 0 0 0 0 0 0 0 32

0 0 0 0 0 0 0 0 0 128

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

right

0 0 0 0 0 0 0 0 0 256

0 0 0 0 0 0 0 0 128 256

0 0 0 0 0 0 0 0 0 256

0 0 0 0 0 0 0 0 0 512

0 0 0 0 0 0 0 0 0 32

0 0 0 0 0 0 0 0 0 128

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

down

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 256

0 0 0 0 0 0 0 0 0 512

0 0 0 0 0 0 0 0 0 512

0 0 0 0 0 0 0 0 0 32

0 0 0 0 0 0 0 0 128 128

top

0 0 0 0 0 0 0 0 128 256

0 0 0 0 0 0 0 0 0 1024

0 0 0 0 0 0 0 0 0 32

0 0 0 0 0 0 0 0 0 128

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

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