단지번호 붙이기


문제 풀이

🔖 소스 코드

🔖 문제

사용된 알고리즘
깊이 우선 탐색

이번 문제는 난이도가 있었다. 우선 DFS 알고리즘을 활용해 푸는 방법은 맞았다.

하지만 상하좌우를 이동하면서 탐색을 해야하는 조건이 추가되었다…



상하좌우 이동

우선 상하좌우 이동을 하러면 2차원 배열을 선언해줘야 한다.

그리고 상하좌우 이동은 범위 확인이 가장 중요하다.

예를 들어서 열 또는 행렬이 0보다 작을 경우는 예외 처리를 해주어야 한다.

if (newRow >= 0 && newRow < n && newCol >= 0 && newCol < n
        && !visited[newRow][newCol] && graph.get(newRow).get(newCol) == 1) {
    dfs(newRow, newCol);
}


방문 확인 배열

방문 확인 배열 또한 2차원으로 선언해주어야 한다.

주의할 점은 방문배열은 static으로 선언해줘야 한다는 점이다.