hwang0108   4년 전

질문을 아까 올렸지만, 좀 더 구체화 시켜서 여쭈어보려고 올립니다.

BFS로 두가지 코드를 작성하였는데, 왜 위에 것은 안되고 아래 것만 되는 것일까요?

위 코드와 아래 코드가 다른 것은 두가지 입니다.

1. 아래 코드는 맵을 넓게 지정했다.

2. 아래 코드는 큐에 범위가 넘어서는 것도 담아주었고, 큐에서 뽑아서 검사할 때 범위가 넘어설 경우 걸러주었다.

    (위에 코드는 큐에 범위가 넘어서는 경우 걸러주어서 큐에 담았다.)

말을 잘 하지 못해 설명이 너무 부실합니다만...

이 불쌍한 어린양을 거두어주시길 바라겠습니다... 감사합니다 ㅜㅜ

ha_ram   4년 전

동전이 떨어질 경우를 생각해보세요

동전이 떨어질 경우 46~49번째 줄에서 배열의 범위를 벗어나는 값이 들어갈텐데

그걸가지고 배열에 접근해서 틀립니다.

예를들어서 어떤 동전A의 위치가 (0,0)이라고 하면

ai는 0이고 aj도 0이겠죠. 여기서 46~49번째 줄에 의해서

ani는 -1, anj는 0이 될겁니다.

그다음 바로 51번째 줄에서 charmap[ani][anj]를 쓰고 있는데

이것은 charmap[-1][0]을 하는것과 같아서 에러를 발생합니다.

그러므로 아래 정답 코드와 같이 맵 크기를 크게 잡아서 하거나

혹은 ani, anj, bni, bnj의 유효성 검사를 먼저 해야합니다.

hwang0108   4년 전

정말 정말 감사합니다. 형님으로 모시겠습니다.

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