10026๋ฒ: ์ ๋ก์์ฝ
์ ๋ก์์ฝ์ ๋นจ๊ฐ์๊ณผ ์ด๋ก์์ ์ฐจ์ด๋ฅผ ๊ฑฐ์ ๋๋ผ์ง ๋ชปํ๋ค. ๋ฐ๋ผ์, ์ ๋ก์์ฝ์ธ ์ฌ๋์ด ๋ณด๋ ๊ทธ๋ฆผ์ ์๋ ์ฌ๋์ด ๋ณด๋ ๊ทธ๋ฆผ๊ณผ๋ ์ข ๋ค๋ฅผ ์ ์๋ค. ํฌ๊ธฐ๊ฐ NรN์ธ ๊ทธ๋ฆฌ๋์ ๊ฐ ์นธ์ R(๋นจ๊ฐ), G(์ด๋ก)
www.acmicpc.net
// Copyright ยฉ 2021 ์์ฃผํ. All rights reserved. // // https://www.acmicpc.net/problem/10026 // BOJ10026 ์ ๋ก์์ฝ #include <iostream> #include <queue> #include <memory.h> using namespace std; int N,ans1,ans2; //NxN, ans1=์ ๋ก์์ฝ ์๋์ฌ๋์ด ๋ดค์๋, ans=์ ๋ก์์ฝ์ธ ์ฌ๋์ด ๋ดค์๋ char map[101][101]; int visited[101][101]; queue<pair<int, int>>q; int dx[] = { 0,0,-1,1 }; //์ ํ ์ข ์ฐ int dy[] = { -1,1,0,0 }; void reset() { memset(visited,0,sizeof(visited)); } void bfs(int a, int b) { q.push({ a,b }); visited[a][b] = 1; while (!q.empty()) { int x = q.front().first; int y = q.front().second; q.pop(); for (int i = 0; i < 4; i++) { //์ ํ ์ข ์ฐ ํ์ int nx = x + dx[i]; int ny = y + dy[i]; if (nx >= 0 && nx < N && ny >= 0 && ny < N) { //๊ตฌ์ญ์ ๋ฒ์๋ฅผ ๋์ด์์ง ์์๋ if (!visited[nx][ny] && (map[nx][ny] == map[x][y])) { visited[nx][ny] = 1; q.push({ nx,ny }); } } } } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> N; for (int i = 0; i < N; i++) { //๊ทธ๋ฆผ ์ ๋ณด ์
๋ ฅ. for (int k = 0; k < N; k++) { cin >> map[i][k]; } } for (int i = 0; i < N; i++) { //์ ๋ก์์ฝ ์๋์ฌ๋์ด ๋ณผ๋ ํ์ for (int k = 0; k < N; k++) { if (!visited[i][k]) { bfs(i, k); ans1++; } } } reset(); //๋ฐฉ๋ฌธ ๊ธฐ๋ก ์ด๊ธฐํ for (int i = 0; i < N; i++) { //์ ๋ก์์ฝ์ธ ์ฌ๋์ด ๋ณผ๋๋ฅผ ํ์ํ๊ธฐ์ํด for (int k = 0; k < N; k++) { if (map[i][k] == 'G') map[i][k] = 'R'; //์ด๋ก์ ๋นจ๊ฐ์ผ๋ก ๋ณ๊ฒฝ } } for (int i = 0; i < N; i++) { //์ ๋ก์์ฝ์ธ ์ฌ๋์ด ๋ณผ๋ ํ์ for (int k = 0; k < N; k++) { if (!visited[i][k]) { bfs(i, k); ans2++; } } } cout << ans1<<' '<<ans2; }
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 1015๋ฒ - ์์ด ์ ๋ ฌ (0) | 2021.10.16 |
---|---|
[๋ฐฑ์ค,c++] 1012๋ฒ - ์ ๊ธฐ๋ ๋ฐฐ์ถ (0) | 2021.10.16 |
[๋ฐฑ์ค,c++] 1010๋ฒ - ๋ค๋ฆฌ ๋๊ธฐ (0) | 2021.10.16 |
[๋ฐฑ์ค,c++] 1009๋ฒ - ๋ถ์ฐ์ฒ๋ฆฌ (0) | 2021.10.16 |
[๋ฐฑ์ค,c++] 1005๋ฒ - ACM Craft (0) | 2021.10.16 |
[๋ฐฑ์ค,c++] 1003๋ฒ - ํผ๋ณด๋์น ํจ์ (0) | 2021.10.16 |
๋๊ธ