RU | EN | FR | JP | DE | CH | KR
각 셀이 물('W') 또는 육지('L')인 이차원 배열로 표현된 호수 지도가 주어지며, 이 지도에서 개별 섬의 개수를 결정하는 작업이다. 섬은 물에 둘러싸인 수평 또는 수직으로 인접한(연결된) 육지 셀 그룹으로 정의된다.
예시 호수 지도:
[ ['W', 'L', 'W', 'W'], ['W', 'L', 'L', 'W'], ['W', 'W', 'L', 'W'], ['L', 'W', 'W', 'L'] ]
예상 결과: 지도에는 3개의 별도의 섬이 있다. 하나의 섬은 두 번째 열에 있는 두 인접한 'L' 셀로 이루어져 있으며, 두 번째는 세 번째 행, 세 번째 열의 한 셀로 이루어져 있으며, 세 번째는 마지막 행의 두 대각선으로 인접하지 않은 셀로 이루어져 있다.
- 지도에서 섬의 개수를 결정하기 위해 너비 우선 탐색(BFS)을 사용하는 알고리즘을 개발한다.
- 방문한 셀과 확인한 셀을 표시하여 탐색 과정을 시각화한다.
- 탐색 과정에서 이동한 횟수(단계 수)를 센다.
- 섬 카운터 및 BFS에 대한 빈 큐를 초기화한다.
- 지도의 각 셀을 반복한다.
- 현재 셀이 육지이고 아직 방문하지 않은 경우, 섬을 탐색하기 위해 BFS를 시작한다.
- BFS 중에 방문한 셀을 표시하고 단계 카운터를 증가시킨다.
- 현재 섬의 모든 인접한 셀을 탐색할 때 BFS가 종료된다.
- 지도의 모든 셀에 대해 단계 3-5를 반복한다.
알고리즘 실행 중에 방문 및 확인된 셀을 시각화한다. 이는 지도에서 섬을 탐색하는 과정을 시각적으로 나타내는 데 도움이 된다.
알고리즘을 완료한 후 호수 지도에서 개별 섬의 개수와 탐색 과정에서 이동한 횟수(단계 수)를 얻게된다.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 LICENSE 파일을 참조하십시오.