백준 1080 - 행렬(작성 중)
문제
백준 1080 - 행렬 풀러가기
문제 분석
(추후 추가)
문제 풀이(C++)
-
전체 코드
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#include <cstdio>#include <vector>using namespace std;int a[50][50];int b[50][50];int dc[] = {0,0,0,1,1,1,-1,-1,-1};int dr[] = { 1,0,-1,1,0,-1,1,0,-1 };int n, m;int cnt = 0;bool check() {for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (a[i][j] != b[i][j]) {return false;}}}return true;}int main() {scanf("%d %d", &n, &m);for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {scanf("%1d", &a[i][j]);}}for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {scanf("%1d", &b[i][j]);}}for (int i = 0; i < n-2; i++) {for (int j = 0; j < m-2; j++) {if (a[i][j] != b[i][j]) {cnt++;for (int k = 0; k < 9; k++) {int nr = i + 1 + dr[k];int nc = j + 1 + dc[k];a[nr][nc] = 1-a[nr][nc];}}}}printf("%d", (check()) ? cnt:-1);return 0;}cs
아직 배움의 과정에 있는 학생이니 내용에 부족한 점이 보이면 지적은 하되, 비난은 하지 말아주세요!!
댓글남기기