psh4253   6년 전

기본적으로 재귀를 통해 문제를 풀어나갔습니다.

원본과 1번째 옮겼을 떄~4번째 옮겼을 떄를 각각의 배열에 저장해준 뒤,

리턴되는값에 따라서 배열을 저장&불러오기를 반복해줬습니다. 소스는 하단과같이 첨부했습니다.

다름이 아니라 질문에 올라온 여러 TC들에 대해서 돌려봤는데 아래와 같은 결과가나왔습니다.

몇개의 경우는 맞고 몇개의 경우는 틀렸는데 숫자의 이동때문에 에러가생긴건가요...?

아니면 전부 탐색하지않는 방법때문에 그런건가요...?

3

2 2 2

4 4 4 

8 8 8 

=> 16

3

2 2 2

2 2 2 

2 2 2 

=>8

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

=>128

x(64로나옴)

5

2 2 4 8 16

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

2 2 4 8 16

=>64

x(32로나옴)

2

16 0 

0 0

답 : 16

0

7

2 2 2 2 2 2 2

2 0 2 2 2 2 2

2 0 2 2 2 2 2

2 0 2 2 2 2 2

2 2 2 0 2 2 2 

2 2 2 2 2 2 0

2 2 2 2 2 2 0

답 : 32

O

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 2 4 0 0 0 0 0 0

0 0 128 0 0 0 0 0 0 0

답 : 1024

O

20

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024

답:32768

O

3

2 2 4

0 0 0

0 0 0

8

O

2

8 16

16 8

=>16

O


4

8 16 0 0

0 0 16 8

0 0 0 0

0 0 0 0

=>32

O


4

0 0 0 0

4 0 0 0

8 32 4 0

8 8 4 0
->64
O


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
->128 (위,오른,위,오,위,왼,왼 7번째에서 128되는데..지금 128나옴..)

x(64)


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

O


1

16

O


2

8 16

16 8

=>16

O


4

2 2 2 2

2 2 2 2

2 2 2 2

2 2 2 2

=>32

O

djm03178   6년 전

기본적으로 구현이 이상한 것 같습니다. 규칙은 제대로 이해하신 건가요?

아래와 같이 중간 단계를 출력했을 때 예제 1번에 대해 가장 처음 나오는 움직임부터 불가능한 결과입니다. 8이라는 수가 한 번 나왔으면 그 이후에는 적어도 8 이상의 수가 하나 이상 나와야 하는데, 그냥 모조리 없어져버렸습니다.

psh4253   6년 전

도와주려해주셔서 정말로 감사합니다. 하지만 올려주신 코드에 일부 이상한점이 있어서 수정을 해봤습니다.

제 생각이 틀린건가요???

djm03178   6년 전

허걱 죄송합니다... 새벽에 깨서 정신이 없었나 봅니다.

다시 봐드리겠습니다.

djm03178   6년 전

[j][k]로 고치고 틀리셨다는 예제 중 하나인

5

2 2 4 8 16

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

2 2 4 8 16

를 넣어보았는데요, 처음에 오른쪽으로 쭉 밀어서

0 0 0 0 32
0 0 0 0 0
0 0 0 0 0
0 0 0 0 32

까지는 잘 갑니다. 그러나 여기서 아래(1)로 가면

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

가 되어야 하며, 위(3)로 가면

0 0 0 0 64
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

이 되어야 하지만, 출력해 보니 아래는

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 32
0 0 0 0 32

가 나오고, 위는

0 0 0 0 32
0 0 0 0 32
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

이 출력되었습니다. 이 부분 규칙을 제대로 이해하신 건지, 아니면 구현의 문제인지는 직접 판단하시면 될 것 같습니다.

psh4253   6년 전

숫자 더하는 규칙은 이해했는데 구현을 이상하게했네요...;;;;ㅋㅋㅋㅋ 정말로 감사합니다 ㅎㅎㅎ

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