작성
·
21
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
설명을 바탕으로 코드 리뷰를 진행해보겠습니다. 이미지로 주신 코드 설명을 통해 BFS(너비 우선 탐색)를 사용하여 섬의 개수를 구하는 문제를 해결하고자 하신 것 같습니다. 다만, 구체적인 코드 내용이나 에러 메시지를 직접 보지 못해 정확한 문제 원인을 파악하기는 어렵지만, BFS를 구현하면서 흔히 발생할 수 있는 몇 가지 점을 주의해 보시면 좋을 것 같습니다.
Boundary Check(경계 체크): 배열의 인덱스를 벗어나지 않도록 하는 경계 체크가 제대로 되고 있는지 확인해주세요. dx
, dy
를 사용하여 인접한 셀로 이동할 때, 이동한 셀의 좌표가 배열의 크기를 초과하거나 음수가 되지 않도록 해야 합니다.
Visit Check(방문 체크): 이미 방문한 섬(혹은 셀)을 다시 방문하지 않도록, 방문 여부를 체크하는 로직이 필수입니다. BFS를 진행하며 방문한 셀은 ‘0’으로 마킹하셨다고 하셨는데, 이 과정에서 누락되거나 잘못된 처리가 없는지 확인해보세요.
Queue Usage(큐 사용법): BFS 과정에서 큐를 사용할 때, 큐에 원소를 넣고 빼는 과정에서 발생할 수 있는 오류를 확인하세요. 큐가 비어있는 상태에서 원소를 빼려고 하거나, 큐에 같은 원소를 중복으로 넣지 않도록 주의해야 합니다.
Input & Initialization(입력 및 초기화): 입력 받는 부분(scanf
사용 부분)과 배열 초기화 부분에서 문제가 없는지 다시 한번 확인해보세요. 모든 입력이 올바르게 처리되고, 사용하는 배열이나 변수가 올바른 값으로 초기화되었는지 점검해야 합니다.
이러한 부분들을 기반으로 코드를 다시 한번 검토해보시고, 여전히 문제를 해결하기 어렵다면 구체적인 에러 메시지나 어느 부분에서 막히는지에 대한 추가적인 정보를 제공해주시면 더 정확한 조언을 드릴 수 있을 것 같습니다.