문제 링크 : https://www.acmicpc.net/problem/2667
단지의 개수와 각 단지별 집의 개수를 출력하는 문제입니다.
DFS로 각 단지의 개수를 세주면 됩니다.
한번 방문한 집은 또 방문할 일이 없기 때문에 일반적으로 사용하는 visited 배열을 쓰지 않고
대신 arr 값을 1에서 0으로 바꿔주면서 DFS를 반복했습니다.
DFS를 한번 돌 때마다 단지 하나가 전부 0 이 됩니다.
그러므로 main에서 DFS를 한번 접근 할 때마다 카운트하여 단지 수를 저장하면 됩니다.
단지별 집의 개수는 오름차순으로 출력하기 때문에 바로바로 출력하지 말고 따로 저장해야합니다.
ArrayList에 담은 후에 Collections.sort 를 사용하여 정렬을 해도 되지만
저는 우선순위큐를 사용하여 오름차순으로 출력하였습니다.
'알고리즘 문제 > 백준' 카테고리의 다른 글
백준 1838번. 버블 정렬 (Java) (0) | 2019.01.16 |
---|---|
백준 1074번. Z (Java) (4) | 2019.01.13 |
백준 1302번. 베스트셀러 (Java) (0) | 2019.01.10 |
백준 1057번. 토너먼트 (Java) (0) | 2019.01.09 |
백준 2026번. 소풍 (Java) (0) | 2019.01.09 |