ckdfuf2001   4년 전

#1

3

2 2 2

4 4 4

8 8 8 

=>16


#2

2

8 16

16 8

=>16


#3

4

8 16 0 0

0 0 16 8

0 0 0 0

0 0 0 0

=>32


4
0 0 0 0
4 0 0 0
8 32 4 0
8 8 4 0
->64

10
8 8 4 16 32 0 0 8 8 8
8 8 4 0 0 8 0 0 0 0
16 0 0 16 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 0 0 0 0 0 16
0 0 0 0 0 0 0 0 0 2
->64 (위,오른,위,오,위,왼,왼 7번째에서 128되는데..지금 128나옴..)

10
16 16 8 32 32 0 0 8 8 8
16 0 0 0 0 8 0 0 0 16
0 0 0 0 0 0 0 0 0 2
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
0 0 0 0 0 0 0 0 0 0
->64 (오,위,오,위,왼,왼 6번째에서 128)


10
0 0 0 0 0 32 8 64 8 16
0 0 0 0 0 0 0 16 8 16
0 0 0 0 0 0 0 0 0 2
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
0 0 0 0 0 0 0 0 0 0
->128 (5번째 위,오,위,왼,왼 128


ㅎㅎㅎ
드디어 맞췄네요...



주의할것!!
-스택에서 peek은 같은 주소를 쓰는 것이라, 배열 값 변경했으면, 이전에 스택에 저장된 값도 변경되네요..?
peek한 것 바로 쓰지말고 직접 일일이 복사했네요.(clone때문일수도.)


-DFS 4^5승만큼 수행(4^5 = 1024번)
DFS이긴한데.. 이건 모든 경우 다 도는 거라서 1024만큼 수행해야되요.

(스택에는 5개 이하의 배열이 들어갑니다. 0:최초 배열, 1~4: depth에 따라)

저는 count로 depth가 5인경우 1024번 셌습니다.
방향은 0~3으로 왼,위,오,아래 로 잡고 방향을 구하는 식때문에 헷갈렸네요.

왼왼왼왼 에서 4가지 경우 : count: 0~3 (방향 dir=count)
왼왼왼위 에서 4가지 경우 : count: 4~7 (방향 dir= count- 4)
왼왼왼오 에서 4가지 경우 : count: 8~11 (방향 dir = count -8)
왼왼왼아 에서 4가지 경우 : count: 12~15 (방향 dir= count-12)

왼왼위왼 에서 4가지 경우 : count: 16~19 (방향 dir= count -16)
왼왼위오 에서 4가지 경우 : count: 20-23 (방향 dir= count-20)
....이런식으로 1024까지 셌습니다..

재귀함수로 구현한다면 일일이 안세도 될거 같네요..
재귀함수 안쓰려고 하다보니.. 더 복잡하게 풀은..

혹시나 누군가 보신다면 참고하실길!!
화이팅!! 질문글이 너무 없어서 올려요!!

ckdfuf2001   4년 전

일단 틀린 케이스는 찾았구..

4
0 0 0 0
4 0 0 0
8 32 4 0
8 8 4 0

->64 되야되는거 맞죠? (아래,왼,왼,왼,아래) 근데 32되네요.

일단 코드 틀린부분 depth가 5일때는 스택에 저장하면 안되는데 저장하네요.

ckdfuf2001   4년 전

재귀함수 안쓰고...

스택으로 dfs해볼려고 했는데.

스택 체크 하는 부분이...망했어요

check[num]이부분이 아예 잘못 설계된거같아요..


jsw7767   4년 전

와 틀린부분을 찾아낼수가 없어서 답답했는데. 주신 테스트 케이스 덕분에 문제점 찾고 통과했습니다. 눈물날것같아서 좋아요랑 댓글남겨요 !!

dct0629   4년 전

5번째 케이스

10
8 8 4 16 32 0 0 8 8 8
8 8 4 0 0 8 0 0 0 0
16 0 0 16 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 0 0 0 0 0 16
0 0 0 0 0 0 0 0 0 2

답 64 맞나요~ 128나왔는데 문제는 맞았습니다.

amateur_k   4년 전

5번째 케이스

10
  8  8  4 16 32  0  0  8  8  8
  8  8  4   0   0  8  0  0  0  0
16  0  0 16   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    0  0  0  0  0 16
  0  0  0  0    0  0  0  0  0  2

위 - 오른쪽 - 오른쪽 - 위 - 오른쪽
5번만 해도 128 나오지 않나요??



kinikini   4년 전

테스트 케이스 감사합니다!!!!

어떤 부분에서 로직 오류가 났는지 몰랐는데 덕분에 알고갑니다!

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