반응형
그래프 형태가 아닌 2차원 배열형태의 DFS BFS 문제이다. 나는 DFS로 문제를 해결 했다.
먼저 2차원 배열 map[][] 에 예제를 입력받는다. 그리고나서 0,0 부터 차례대로 탐색하면서 1이 나타나면 그자리에서 DFS를 한다.
visited[][] 배열을 따로 만들어서, 방문된 자리는 방문했다고 표시해준다. 그러면 차례대로 탐색할 때, 1을 발견하여도 탐색했기 때문에 그냥
넘어갈 수 있다. cnt 변수와 count 변수를 추가해서 cnt에는 반복문이 돌면서 1을 만날 때 DFS를 시작하면서 1씩 증가시켜 단지내 집수를 출력하고,
count에는 DFS가 한번씩 끝날 때마다 1씩 증가시켜 총 단지수를 출력하는 방법으로 문제를 풀었다.
DFS할 때 중요한 점은 2차원 배열을 DFS하기 때문에 상하좌우로 탐색해야 한다. 상하좌우를 탐색하기 때문에 배열의 범위를 벗어나는지
판단하기 위해서 isInside 함수를 따로 작성했다.
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
[1463] 1로 만들기 (0) | 2019.03.16 |
---|---|
[4963] 섬의 개수 (0) | 2019.03.11 |
[11724] 연결 요소의 개수 (0) | 2019.03.11 |
[1260] DFS와 BFS (0) | 2019.03.11 |
연속부분최대합L (0) | 2019.03.07 |