문제
[ 해결순서 ]
- 깊이우선탐색, 너비우선탐색 어떤 방식으로도 풀 수 있는 문제지만, 나는 문제를 보자마자 깊이우선탐색로 풀어야 겠다고 떠올라 이 방식으로 해결하였다.
- 총 단지수는 하나의 깊이우선탐색이 끝날때 변수 값을 하나씩 추가하면 되며,
- 모든 값들을 하나씩 살펴보며 방문하지 않은 것 중 집이 있는 곳을 깊이우선탐색 한다.
- dfs 메소드는 사실 다른 유사한 깊이우선탐색의 메소드와 비슷하다.
- 그래도 설명하자면, 입력한 x, y값을 기준으로 상하좌우의 값을 비교하여 조건에 맞는 (방문하지 않고, 집이있으면) 그 값을 기준으로 재귀처리 함.
- 총 단지수를 출력하고, 각 단지내의 수를 오름차순으로 정렬하여 출력 (까먹고 오름차순 정렬하지 않았다가 틀렸었다)
✏️ 한줄 평
이젠 어떤 문제가 깊이우선탐색인지 구별할 정도로는 된 것 같다. 아직 심화문제는 아니라서 그럴 순 있지만, 익숙해질 때까지 풀어야겠다.
코드
'알고리즘' 카테고리의 다른 글
[JAVA] 백준 11057 - 오르막 수 (0) | 2021.07.25 |
---|---|
[JAVA] 백준 7569번 - 토마토 (0) | 2021.07.25 |
[JAVA] 백준 1991번 - 트리순회 (0) | 2021.07.19 |
[JAVA] 백준 1697번 - 숨바꼭질 (0) | 2021.07.19 |
[JAVA] 백준 1149번 - RGB거리 (0) | 2021.07.19 |