작성
·
135
답변 1
1
안녕하세요 ㅎㅎ
void bfs(int y, int x){
memset(visited, 0, sizeof(visited));
visited[y][x] = 1;
처음에 visited를 1부터 시작하기 때문에 해당 부분을 빼줘야 해서 그렇습니다.
mx = max(mx, visited[ny][nx]);
앞의 코드와 같이 mx = visitied의 가장 최대값이 담기거든요.
이 문제는 최단거리이기 때문에 a -> b로 간다고 했을 때 2칸이지만 최단거리는 1이죠?
우리는 2칸으로 계산되게끔 로직을 구축했기 때문에 1을 빼주어야 합니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.