블로그 언저리인 무언가
[백준/BOJ] 1080 행렬 본문
728x90
문제 : 1080 행렬
행렬 A와 행렬 B가 주어질 때 3*3 크기의 모든 원소를 뒤집어서
행렬 A를 행렬 B로 만드는 최소 횟수를 구하는 문제이다.
그리디 하게 앞 원소부터 모두 뒤집어 본 후 불가능한 경우를 체크해주면 된다.
Code
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll N, M, ans;
string x[55], y[55];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N >> M;
for (int i=0;i<N;i++)
cin >> x[i];
for (int i=0;i<N;i++)
cin >> y[i];
for (int i=0;i<N-2;i++){
for (int j=0;j<M-2;j++){
if (x[i][j]!=y[i][j]){
ans++;
for (int a=i;a<i+3;a++){
for (int b=j;b<j+3;b++){
x[a][b]=='0' ? x[a][b]='1' : x[a][b]='0';
}
}
}
}
}
for (int i=0;i<N;i++){
for (int j=0;j<M;j++){
if (x[i][j]!=y[i][j]){
cout << "-1";
return 0;
}
}
}
cout << ans;
return 0;
}
728x90
'Programming > BOJ' 카테고리의 다른 글
[백준/BOJ] 1916 최소비용 구하기 (0) | 2020.12.04 |
---|---|
[백준/BOJ] 9375 패션왕 신혜빈 (0) | 2020.12.01 |
[백준/BOJ] 1074 Z (0) | 2020.11.29 |
[백준/BOJ] 1138 한 줄로 서기 (0) | 2020.11.23 |
[백준/BOJ] 18115 카드 놓기 (1) | 2020.11.20 |
Comments