https://www.acmicpc.net/problem/2667
๋ฌธ์
<๊ทธ๋ฆผ 1>๊ณผ ๊ฐ์ด ์ ์ฌ๊ฐํ ๋ชจ์์ ์ง๋๊ฐ ์๋ค. 1์ ์ง์ด ์๋ ๊ณณ์, 0์ ์ง์ด ์๋ ๊ณณ์ ๋ํ๋ธ๋ค. ์ฒ ์๋ ์ด ์ง๋๋ฅผ ๊ฐ์ง๊ณ ์ฐ๊ฒฐ๋ ์ง์ ๋ชจ์์ธ ๋จ์ง๋ฅผ ์ ์ํ๊ณ , ๋จ์ง์ ๋ฒํธ๋ฅผ ๋ถ์ด๋ ค ํ๋ค. ์ฌ๊ธฐ์ ์ฐ๊ฒฐ๋์๋ค๋ ๊ฒ์ ์ด๋ค ์ง์ด ์ข์ฐ, ํน์ ์๋์๋ก ๋ค๋ฅธ ์ง์ด ์๋ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค. ๋๊ฐ์ ์์ ์ง์ด ์๋ ๊ฒฝ์ฐ๋ ์ฐ๊ฒฐ๋ ๊ฒ์ด ์๋๋ค. <๊ทธ๋ฆผ 2>๋ <๊ทธ๋ฆผ 1>์ ๋จ์ง๋ณ๋ก ๋ฒํธ๋ฅผ ๋ถ์ธ ๊ฒ์ด๋ค. ์ง๋๋ฅผ ์ ๋ ฅํ์ฌ ๋จ์ง์๋ฅผ ์ถ๋ ฅํ๊ณ , ๊ฐ ๋จ์ง์ ์ํ๋ ์ง์ ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์๋ ์ง๋์ ํฌ๊ธฐ N(์ ์ฌ๊ฐํ์ด๋ฏ๋ก ๊ฐ๋ก์ ์ธ๋ก์ ํฌ๊ธฐ๋ ๊ฐ์ผ๋ฉฐ 5≤N≤25)์ด ์ ๋ ฅ๋๊ณ , ๊ทธ ๋ค์ N์ค์๋ ๊ฐ๊ฐ N๊ฐ์ ์๋ฃ(0ํน์ 1)๊ฐ ์ ๋ ฅ๋๋ค.
์ถ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์๋ ์ด ๋จ์ง์๋ฅผ ์ถ๋ ฅํ์์ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ ๋จ์ง๋ด ์ง์ ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ์์ค.
ํ์ด
// Authored by : seondal
// ํ์ด : https://whkakrkr.tistory.com/
// Co-authored by : -
//#include <bits/stdc++.h>
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
string board[27];
vector<int> ans;
int dx[4] = {0,0,-1,1};
int dy[4] = {1,-1,0,0};
int main() {
int n;
cin >> n;
for(int i=0; i<n; i++)
cin >> board[i];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
if(board[i][j] == '0') continue;
int area = 1;
queue<pair<int, int>> q;
q.push({i,j});
board[i][j] = '0';
while(!q.empty()){
auto c = q.front();
q.pop();
for(int dir=0; dir<4; dir++){
int x = c.first + dx[dir];
int y = c.second + dy[dir];
if(x<0 || x>=n || y<0 || y>=n) continue;
if(board[x][y] == '0') continue;
q.push({x,y});
board[x][y] = '0';
area++;
}
}
ans.push_back(area);
}
}
sort(ans.begin(), ans.end());
cout << ans.size() << "\n";
for(int i=0; i<ans.size(); i++)
cout << ans[i] << "\n";
return 0;
}
/**/
๋ง์ฝ 6% ์์ ํ๋ฆฐ๋ค๋ฉด
์ง์ ๊ฐฏ์๊ฐ ํ๋์ธ ๊ฒฝ์ฐ์์ ํ๋ ธ์ ํ๋ฅ ์ด ๋๋ค (๋ด๊ฐ ๊ทธ๋ฌ๋ค)
// ์
๋ ฅ
3
000
010
000
// ์ ๋ต
1
1
'๐ Baaaaaarking > 0x09๊ฐ - BFS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ G4][C++] ๋ฐฑ์ค 2206๋ฒ : ๋ฒฝ ๋ถ์๊ณ ์ด๋ํ๊ธฐ (0) | 2022.04.13 |
---|---|
[BOJ S1][C++] 2468๋ฒ: ์์ ์์ญ (76%) (0) | 2022.04.07 |
[BOJ S1][C++] ๋ฐฑ์ค 2583๋ฒ : ์์ญ ๊ตฌํ๊ธฐ (0) | 2022.03.21 |
[BOJ G4][C++] ๋ฐฑ์ค 5427๋ฒ : ๋ถ (0) | 2022.03.19 |
[BOJ G4][C++] ๋ฐฑ์ค 4179๋ฒ: ๋ถ! (0) | 2022.03.16 |