You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
문제 링크
https://www.acmicpc.net/problem/2667
문제 조건
정사각형 지도에 1과 0이 채워져 있다.
아이디어
정답의 최대치
N의 최댓값이 25이므로 단지의 개수가 최대일 경우 25^2 / 2이다. int 자료형으로 충분하다.
N의 최댓값이 25이므로 집의 개수가 최대일 경우는 25^2이다. int 자료형으로 충분하다.
정점과 간선이 주어진 문제와 다르게 격자형의 0과 1로 이루어진 map이 주어졌다.
격자형 그래프 구성
5개의 격자 지도를 다음처럼 격자형 그래프로 나타낼 수 있다.
(i,j)
위치에 있는 점을 기준으로 집이 있으면 흰색, 없으면 회색으로 표현한다. 각 점과의 간선은 상하좌우로 인접했을 경우 연결해주면 된다.각 점들에 대해서 상하좌우를 모두 탐색해야 한다. 미리 배열에 상하좌우를 탐색할 수 있도록 저장해둔다.
결과적으로 만들어지는 격자형 그래프는 다음과 같다.
격자형 그래프에 대해 탐색을 진행한다.
시간 복잡도
격자형 그래프의 정점의 개수는 N^2개이고, 간선의 개수는 각 정점마다 상하좌우로 4개의 간선이 있을 수 있으므로 최대 N^2*4일 것이다.
BFS이든 DFS이든 간선을 인접 리스트 형식으로 관리하게 되면 시간 복잡도는 O(V+E) 이므로 최종 시간 복잡도는 O(N^2)이 될 것이다.
DFS 구현
BFS 구현
Beta Was this translation helpful? Give feedback.
All reactions