#include <iostream> #include <algorithm> | |
using namespace std;; | |
bool map[27][27]; | |
bool visit[27][27]; | |
int num[313]; | |
int cnt_d; | |
int cnt; | |
int dx[4]={1,-1,0,0}; | |
int dy[4]={0,0,1,-1}; | |
void dfs(int x, int y) | |
{ | |
for(int i=0; i<4; i++) | |
{ | |
int nx=x+dx[i]; | |
int ny=y+dy[i]; | |
if(map[nx][ny] && !visit[nx][ny]) | |
{ | |
visit[nx][ny]=1; | |
cnt_d++; | |
dfs(nx,ny); | |
} | |
} | |
} | |
int main() | |
{ | |
int N; | |
cin >> N; | |
char in[25]; | |
for(int i=1; i<=N; i++) | |
{ | |
cin >> in; | |
for(int j=1; j<=N; j++) | |
map[i][j]=in[j-1]-'0'; | |
} | |
for(int i=1; i<=N; i++) | |
for(int j=1; j<=N; j++) | |
if(!visit[i][j]&& map[i][j]) | |
{ visit[i][j]=1; cnt_d=1; dfs(i,j); num[cnt]=cnt_d; cnt++; } | |
sort(num,num+cnt); // 0부터 cnt개의 단지 개수만큼 sort | |
cout << cnt << endl; | |
for(int i=0; i<cnt; i++) cout << num[i] << endl; | |
} |
ㅠ-ㅠ 제대로 해놓고 sort 범위를 잘못정해서 계속 틀림
'알고리즘 문제 풀이 > 1DP_과제(~180615)' 카테고리의 다른 글
171117_2583_영역 구하기 (0) | 2017.11.17 |
---|---|
171116_1987_알파벳 (0) | 2017.11.16 |
171114_1012_유기농 배추 (0) | 2017.11.14 |
171114_1697_숨바꼭질 (0) | 2017.11.14 |
171113_1260_dfs와 bfs (0) | 2017.11.13 |