https://www.acmicpc.net/problem/2667

 

2667번: 단지번호붙이기

<그림 1>과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. �

www.acmicpc.net

복습 겸 다시 풀어본  bfs 문제였습니다.

그래프 문제로서 기본적으로

- 그래프 배열

- boolean 배열

- 그래프의 상하좌우 방향지시 배열

- 그래프의 유효한 좌표값 판별 함수

이 정도 기본 적으로 생각하고 더 필요한 부분 추가해서 구현합니다.

main 함수에서 그래프의 값이 0이 아니면 해당 좌표부터 bfs를 돌립니다. 이 때, ++idx 값을 매개변수로 주어 단지번호를 masking  해줍니다.

그리고 bfs는 각 단지내의 집의 개수를 return 해주며, 이를 메인함수에서 ArrayList에 저장한 뒤 Collection을 통해 정렬 하면 구현은 끝이 납니다.

 

+ Recent posts