mooon๐ŸŒ™
STUDY
mooon๐ŸŒ™
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (170)
    • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ (147)
      • ๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (53)
      • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1 (13)
      • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์ž…๋ฌธ (54)
      • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] SQL ๊ณ ๋“์  Kit (27)
    • BACK (4)
      • Spring (3)
      • PHP (0)
    • FRONT (5)
    • DevOps (8)
      • Jenkins (8)
    • GitHub๐ŸŒฑ (2)
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (1)
      • SQL (1)
    • Error ๐Ÿ’ฅ (0)
      • php (2)
    • ๐Ÿ˜‹ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • โญ ๊นƒํ—ˆ๋ธŒ
  • ๐Ÿ’• ๋ฐฉ๋ช…๋ก
  • ๐Ÿ’ฅ ํƒœ๊ทธ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ž…๋ฌธ
  • ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • SQL ๊ณ ๋“์  Kit
  • ๋ฐฑ์ค€
  • DevOps
  • SQL
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • c++
  • Python

์ตœ๊ทผ ๊ธ€

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.
mooon๐ŸŒ™

STUDY

๋ฐฑ์ค€ 10026 _ ์ ๋ก์ƒ‰์•ฝ
์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ/๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ฐฑ์ค€ 10026 _ ์ ๋ก์ƒ‰์•ฝ

2020. 10. 7. 16:12
728x90

www.acmicpc.net/problem/10026

 

10026๋ฒˆ: ์ ๋ก์ƒ‰์•ฝ

์ ๋ก์ƒ‰์•ฝ์€ ๋นจ๊ฐ„์ƒ‰๊ณผ ์ดˆ๋ก์ƒ‰์˜ ์ฐจ์ด๋ฅผ ๊ฑฐ์˜ ๋А๋ผ์ง€ ๋ชปํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ์ ๋ก์ƒ‰์•ฝ์ธ ์‚ฌ๋žŒ์ด ๋ณด๋Š” ๊ทธ๋ฆผ์€ ์•„๋‹Œ ์‚ฌ๋žŒ์ด ๋ณด๋Š” ๊ทธ๋ฆผ๊ณผ๋Š” ์ข€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ํฌ๊ธฐ๊ฐ€ N×N์ธ ๊ทธ๋ฆฌ๋“œ์˜ ๊ฐ ์นธ์— R(๋นจ๊ฐ•), G(์ดˆ๋ก)

www.acmicpc.net


โœจ ๋‚ด ์†Œ์Šค ์ฝ”๋“œ

#include<iostream>
#include <string>
#include <vector>
#include <string.h>

using namespace std;
vector<string> RGB;
vector<string> RB;
int route[4][2] = { { -1,0 },{ 0,-1 },{ 0,1 },{ 1,0 } };
bool visit[101][101];
int N;
void DFS(int init_x, int init_y, char color) {
	visit[init_x][init_y] = true;

	for (int i = 0; i < 4; i++) {
		int nx = init_x + route[i][0];
		int ny = init_y + route[i][1];

		if (nx < 0 || nx >= N || ny < 0 || ny >= N) continue;
		if (RGB[nx][ny] == color && !visit[nx][ny]) DFS(nx, ny, RGB[nx][ny]);
	}
}
void DFS2(int init_x, int init_y, char color) {
	visit[init_x][init_y] = true;

	for (int i = 0; i < 4; i++) {
		int nx = init_x + route[i][0];
		int ny = init_y + route[i][1];

		if (nx < 0 || nx >= N || ny < 0 || ny >= N) continue;
		if (RB[nx][ny] == color && !visit[nx][ny]) DFS2(nx, ny, RB[nx][ny]);
	}
}
int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	string temp;
	
	int area_count = 0;
	cin >> N;

	for (int i = 0; i < N; i++) {
		cin >> temp;
        //์ ๋ก์ƒ‰์•ฝ์ด ์•„๋‹Œ ์‚ฌ๋žŒ
		RGB.push_back(temp);
        //์ ๋ก์ƒ‰์•ฝ์ธ ์‚ฌ๋žŒ
		for (int j = 0; j < N; j++) {
			if (temp[j] == 'G')
				temp[j] = 'R';
		}
		RB.push_back(temp);
	}
    
    //์ ๋ก์ƒ‰์•ฝ์ด ์•„๋‹Œ ์‚ฌ๋žŒ
	memset(visit, false, sizeof(visit));
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < N; j++) {
			if (RGB[i][j] > 0 && !visit[i][j]) {
				area_count++;
				DFS(i, j, RGB[i][j]);
			}
		}
	}
	cout << area_count <<" ";
    
    //์ ๋ก์ƒ‰์•ฝ์ธ ์‚ฌ๋žŒ
	memset(visit, false, sizeof(visit));
	area_count = 0;
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < N; j++) {
			if (RGB[i][j] > 0 && !visit[i][j]) {
				area_count++;
				DFS2(i, j, RB[i][j]);
			}
		}
	}
	cout << area_count;
	
	return 0;
}

 

โญ ๋ฌธ์ œ ํ’€์ด ๊ฒฐ๊ณผ

 

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    '์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ/๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ๋ฐฑ์ค€ 2178 _ ๋ฏธ๋กœ ํƒ์ƒ‰
    • ๋ฐฑ์ค€ 11722 _ ๊ฐ€์žฅ ๊ธด ๊ฐ์†Œํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด
    • ๋ฐฑ์ค€ 1003 _ ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜
    • ๋ฐฑ์ค€ 2573 _ ๋น™์‚ฐ
    mooon๐ŸŒ™
    mooon๐ŸŒ™
    ๊ฐœ๋ฐœ ๊ณต๋ถ€ ๊ธฐ๋ก

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”