백준 1080 java : greedy algorithms 연습

magicdrill·2024년 11월 18일
0

백준 문제풀이

목록 보기
488/656

백준 1080 java : greedy algorithms 연습

면접 결과 : 앞으로 막무가내 지원은 그만두자. CS 지식 습득을 우선시 하자.

import java.util.Scanner;

public class bj1080 {
    static Scanner scanner = new Scanner(System.in);
    static int[][] A;
    static int[][] B;

    public static void main(String[] args) {
        inputData();
        System.out.println(findAnswer());

        scanner.close();
    }

    public static void inputData(){
        System.out.println("inputData()");

        int i, j;
        int N, M;
        String temp;

        N = scanner.nextInt();
        M = scanner.nextInt();
        A = new int[N][M];
        B = new int[N][M];

        System.out.println("A 입력");
        for(i = 0; i < N; i++){
            temp = scanner.next();
            for(j = 0; j < M; j++){
                A[i][j] = temp.charAt(j) - '0';
            }
        }
        System.out.println("B 입력");
        for(i = 0; i < N; i++){
            temp = scanner.next();
            for(j = 0; j < M; j++){
                B[i][j] = temp.charAt(j) - '0';
            }
        }
    }

    public static int findAnswer(){
        System.out.println("findAnswer()");
        int answer = 0;
        int i, j, k, l;
        int N = A.length, M = A[0].length;

        for(i = 0; i < N; i++){
            for(j = 0; j < M; j++){
                if((A[i][j] != B[i][j]) && (i + 2 < N) && (j + 2 < M)){
                    for(k = i; k < i + 3; k++){
                        for(l = j; l < j + 3; l++){
                            A[k][l] = (A[k][l] == 0 ? 1 : 0);
                        }
                    }
                    answer++;
                    System.out.println("answer : " + answer);
                    for (k = 0; k < N; k++) {
                        for (l = 0; l < M; l++) {
                            System.out.print(A[k][l]);
                        }
                        System.out.println();
                    }
                    System.out.println();
                }
            }
        }


        for (i = 0; i < N; i++) {
            for (j = 0; j < M; j++) {
                if (A[i][j] != B[i][j]) {
                    return -1;
                }
            }
        }

        return answer;
    }
}

0개의 댓글