wksms21   2년 전

12100번 문제(2048 Easy) 에서는 AC를 받는것을 확인하여 move에는 문제가 없어 보입니다.

제 생각에는 아마도 가지치기를 하는 쪽에 문제가 있는 것 같습니다.

가지치기는 이전 질문을 참고하여 다음 두가지로 처리했습니다.


1. 이동했을때 변화가 없는 경우 탐색을 안하는방법과 (76번 줄)
2. 현재 depth에서 최대값에 도달할 수 없는 경우로 했습니다 (58번 줄)


1은 branch_cut이라는 배열을 이용하여

branch_cut에는 깊이 10에 도달했을 경우 최대값이 1024라면

branch_cut[10]에는 1024, branch_cut[9]에는 512 이런식으로 넣어서

현재 깊이에서 최대값에 도달하는것이 가능한지 비교하였습니다.


2의 경우에는 temp배열에 이동하기 전의 상태가 저장되어있는데

이동직후 두 배열을 비교하여 똑같다면 그 방향은 탐색하지 않도록 하였습니다.


그런데도 시간초과가 발생해서 어떻게 해야할지 모르겠네요.

도와주십시오...ㅠ.ㅠ

wksms21   2년 전

해결했습니다. 벡터떡칠한게 문제였네요^^

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