[백준, BOJ 16967] 배열 복원하기 (java)
Problem Solving/BOJ

[백준, BOJ 16967] 배열 복원하기 (java)

728x90

https://www.acmicpc.net/problem/16967

메모리: 41,804 KB , 시간: 308 ms

사용 알고리즘: 구현


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws Exception{

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;

        st = new StringTokenizer(br.readLine());
        int H = Integer.parseInt(st.nextToken());
        int W = Integer.parseInt(st.nextToken());
        int X = Integer.parseInt(st.nextToken());
        int Y = Integer.parseInt(st.nextToken());

        int[][] B = new int[H + X][W + Y];
        for (int i = 0; i < B.length; i++) {
            st = new StringTokenizer(br.readLine());
            for (int j = 0; j < B[i].length; j++) {
                B[i][j] = Integer.parseInt(st.nextToken());
            }
        }

        int[][] A = new int[H][W];
        for (int i = 0; i < H; i++) {
            for (int j = 0; j < W; j++) {
                if(i - X < 0 || j - Y < 0) A[i][j] = B[i][j];
                else A[i][j] = B[i][j] - A[i - X][j - Y];
            }
        }

        StringBuilder result = new StringBuilder();
        for (int i = 0; i < H; i++) {
            for (int j = 0; j < W; j++) {
                result.append(A[i][j]).append(" ");
            }
            result.append("\n");
        }
        System.out.print(result);
    }
}
728x90