whdnjqls456   4년 전

이전 소스도 에러 나길래 새로 짰습니다. 

이번엔 하나하나 체크해주는 방식으로 짜봤는데,


그래도 8%쯤에서 틀렸다는 메세지를 받습니다.

그런데 반례를 못찾겠습니다 ㅠ..


도움 좀 부탁드립니다..

aquarius456   4년 전

 안녕하세요. 코드를 잘 읽었습니다.

하루가 지났기 때문에 아마 푸셨다고 생각합니다만, 그래도 답변 드리겠습니다.

가로 부분, 회전에 

if (map[x + 1][y - 1] != '1' && map[x+1][y] != '1' && map[x + 1][y + 1] != '1' &&
map[x - 1][y - 1] != '1' && map[x-1][y] != '1' && map[x - 1][y + 1] != '1' &&
checkRange(x + 1, y - 1) && checkRange(x+1, y) && checkRange(x + 1, y + 1) &&
checkRange(x - 1, y - 1) && checkRange(x-1, y) && checkRange(x - 1, y + 1) &&
visit[1][x][y] == 0) // 여기와
{
visit[1][x][y] = 1; // 여기..
QUEUE[rear].x = x;
QUEUE[rear].y = y;
QUEUE[rear].d = 0;
QUEUE[rear].n = n + 1;
rear++;
}

에 문제가 있었습니다.

저건 세로가 방문한 조건이기 때문에 저 부분을 수정하면 정답이 나올 것입니다.

whdnjqls456   4년 전

감사합니다. 소스가 길어지니 사소한 오류인데 잡아내기가 어렵웠던 것 같습니다 '-'... 답글에 진심으로 감사드립니다. 


혹시라도 틀리시는 분 계실까봐 소스 남겨놓습니다. 

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