์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ๋ต ๋น์จ |
1 ์ด | 128 MB | 38.045 % |
๋์๋จ๋ถ ๋ค ๋ฐฉํฅ์ผ๋ก ์ฐ๊ฒฐ๋ ์ง๋ค์ ๋ชจ์์ ๋จ์ง๋ผ๊ณ ํ๋ค. ๋จ์ง์ ํด๋นํ๋ ์ง์ ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
์
๋ ฅ์ด ๋์ด์ฐ๊ธฐ ์์ด ๋ฌธ์์ด๋ก ์ฃผ์ด์ ธ string์ผ๋ก ๋ฐ์ int๋ฐฐ์ด์ ๋ฃ์ด์ฃผ์๋ค.
์ด์ค ํฌ๋ฌธ์ ๋๋๋ฐ ํด๋น ์์น์ ์ง์ด ์์ผ๋ฉด ํ๋์ ๋จ์ง๋ก ๊ฐ์ฃผํ๊ณ dfs๋ฅผ ๋์ ๋จ์ง ๋ด์ ์ง์ ์๋ฅผ ๊ตฌํ๋ค. ์ด ๋ chk ๋ฐฐ์ด์ ์ด์ฉํ์ฌ ์ค๋ณต์ ๋ฐฉ์งํ๋ค.
ํฌ๋ฌธ์ด ๋๋๋ฉด ๋ชจ๋ ๋จ์ง๋ฅผ ํ์ํ ๊ฒ์ด๋ฏ๋ก ์ ์ฅํด๋จ๋ ๋จ์ง ๋ด์ ์ง์ ์๋ฅผ ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ค.
๋ฉ๋ชจ๋ฆฌ | ์๊ฐ |
1996 KB | 0 ms |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<string>
#include<vector>
using namespace std;
int di[] = { 0,0,1,-1 };
int dj[] = { 1,-1,0,0 };
int n, cnt;
int arr[26][26];
int chk[26][26];
vector<int> v;
void dfs(int r, int c) {
cnt++;
chk[r][c] = 1;
for (int i = 0; i < 4; i++) {
int nextr = r + di[i];
int nextc = c + dj[i];
if (nextr >= 0 && nextr < n && nextc >= 0 && nextc < n) {
if (arr[nextr][nextc] && !chk[nextr][nextc]) {
dfs(nextr, nextc);
}
}
}
}
int main() {
scanf("%d", &n);
string s;
for (int i = 0; i < n; i++) {
cin >> s;
for (int j = 0; j < s.length(); j++) {
arr[i][j] = s[j] - '0';
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (arr[i][j] && !chk[i][j]) {
dfs(i, j);
v.push_back(cnt);
cnt = 0;
}
}
}
sort(v.begin(), v.end());
printf("%d\n", v.size());
for (int i = 0; i < v.size(); i++) {
printf("%d\n", v[i]);
}
return 0;
}
|
cs |
'๐ฅ PS(Problem Solving) ๐ฅ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] #1541 ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2019.09.04 |
---|---|
[BOJ] #2573 ๋น์ฐ (0) | 2019.09.04 |
[BOJ] #2644 ์ด์๊ณ์ฐ (0) | 2019.09.04 |
[BOJ] #6603 ๋ก๋ (0) | 2019.09.04 |
[BOJ] #14502 ์ฐ๊ตฌ์ (0) | 2019.09.04 |
๋๊ธ