khj878   6달 전

예제 테스트 케이스는 잘 돌아가는데

틀렸다고 나오네요..

알고리즘 어느 부분이 문제가 있는지 찾아봤지만 

어느부분이 잘못됬는지 모르겠네요..

고수님들의 답변 부탁드립니다!!

yukariko   5달 전

for문이 m*n으로 돌아야할것 같은데 n*n으로 돌고있네요

khj878   5달 전

해당 부분이 잘못되서 수정했는데 불구하고 안돌아가네요..

제실력으론 DFS에서는 더이상 문제점을 찾을수 없네요

BFS로 다시 짜봐야 할거 같네요

yukariko   5달 전

dfs에도 똑같은 문제가 있어서 고치니 정답을 받았습니다.

한가지 주의할점은

int exit = (x < 0 || y < 0 || x >= N || y >= N);

이렇게 예외처리를 하였다면 예외가 발생시 exit를 가지고 미리 종료를 해야합니다.

만약 x가 음수여서 exit가 true가 되었다고 해도,

if (visit[x][y] == 1 || map[x][y] != k) 같은 코드에서 음수인덱스에 접근할 수 있습니다.

이는 오버플로우로 인한 잘못된 값참조뿐만 아니라 런타임에러를 불러올 수 있기때문에 주의하셔야 합니다.

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