백준
백준 1080 행렬(Java)
Park DJ
2023. 2. 20. 11:23
https://www.acmicpc.net/problem/1080
1080번: 행렬
첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다.
www.acmicpc.net
Java 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = 0;
int n = sc.nextInt();
int m = sc.nextInt();
int[][] arr = new int[n][m];
int[][] check = new int[n][m];
for(int i = 0; i < n; i++) {
String str = sc.next();
for(int j = 0; j < m; j++) arr[i][j] = str.charAt(j) - '0';
}
for(int i = 0; i < n; i++) {
String str = sc.next();
for(int j = 0; j < m; j++) check[i][j] = str.charAt(j) - '0';
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
if(arr[i][j] != check[i][j] && i + 2 < n && j + 2 < m) {
for(int a = i; a < i + 3; a++) {
for(int b = j; b < j + 3; b++) {
if(arr[a][b] == 0) arr[a][b] = 1;
else arr[a][b] = 0;
}
}
count++;
}
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
if(arr[i][j] != check[i][j]) {
System.out.println(-1);
return;
}
}
}
System.out.println(count);
}
}