동전이 떨어질 경우를 생각해보세요
동전이 떨어질 경우 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년 전
질문을 아까 올렸지만, 좀 더 구체화 시켜서 여쭈어보려고 올립니다.
BFS로 두가지 코드를 작성하였는데, 왜 위에 것은 안되고 아래 것만 되는 것일까요?
위 코드와 아래 코드가 다른 것은 두가지 입니다.
1. 아래 코드는 맵을 넓게 지정했다.
2. 아래 코드는 큐에 범위가 넘어서는 것도 담아주었고, 큐에서 뽑아서 검사할 때 범위가 넘어설 경우 걸러주었다.
(위에 코드는 큐에 범위가 넘어서는 경우 걸러주어서 큐에 담았다.)
말을 잘 하지 못해 설명이 너무 부실합니다만...
이 불쌍한 어린양을 거두어주시길 바라겠습니다... 감사합니다 ㅜㅜ