티스토리 뷰

BOJ

[BOJ] 17302 흰색으로 만들기

[gunwookim] 2020. 5. 21. 23:28

흰색으로 만들기 문제다.

 

17302번: 흰색으로 만들기

첫 줄에 N과 M이 주어진다. (1 ≤ N, M ≤ 2,000) 다음 줄부터 N개의 줄에 걸쳐 각 행의 상태를 나타내는 길이 M의 문자열이 주어진다. 모든 문자열은 'B'와 'W'로 이루어져 있다. i 번째 줄, j 번째 문자�

www.acmicpc.net

관찰을 하나 해보자. 2번 동작에서 3번 동작으로 바꾸면, 가운데 하나만 색이 반전 된다는 것을 알 수 있다.

모두 2번 동작을 한다. 그리고 검은색 타일에 대해서 3번 동작으로 바꿔주면 모두 하얀색 타일로 바뀐다.

 

#include <bits/stdc++.h>
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair <ll,ll> pl;
typedef pair <int,int> pi;
int n,m,a[2005][2005];
char in[2005];
int ans[2005][2005];
int nx[4] = {1,0,-1,0}, ny[4] = {0,1,0,-1};

int main() {
	ios_base::sync_with_stdio(false); cin.tie(0);
	cin >> n >> m;
	for(int i = 1;i <= n;i++) {
		cin >> in+1;
		for(int j = 1;j <= m;j++) if(in[j] == 'B') a[i][j] = 1;
	}
	for(int i = 1;i <= n;i++) for(int j = 1;j <= m;j++) {
		ans[i][j] = 2;
		for(int k = 0;k < 4;k++) a[i+nx[k]][j+ny[k]] ^= 1;
	}
	cout << "1\n";
	for(int i = 1;i <= n;i++) {
		for(int j = 1;j <= m;j++) {
			if(a[i][j]) ans[i][j] = 3;
			cout << ans[i][j];
		}
		cout << '\n';
	}
}

'BOJ' 카테고리의 다른 글

[BOJ] 18913 Graph Coloring  (0) 2021.02.01
[BOJ] 1909 냄새 싫어  (4) 2020.08.26
[BOJ] 2473 세 용액  (2) 2020.04.13
[BOJ] 13536 수열과 쿼리 4  (0) 2020.04.13
[BOJ] 18291 비요뜨의 징검다리 건너기  (0) 2020.04.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함