[알고리즘]/알고리즘
[알고리즘] 백준 16967번 : 배열 복원하기 (실버3)
쿠릉쿠릉 쾅쾅
2022. 4. 18. 15:36
728x90
문제
https://www.acmicpc.net/problem/16967
📌 알고리즘 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer 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<H+X; i++) {
StringTokenizer st2 = new StringTokenizer(br.readLine(), " ");
for(int k=0; k<W+Y; k++) {
B[i][k] = Integer.parseInt(st2.nextToken());
}
}
// 임시 A 배열 정의
int[][] tempArr = new int[H][W];
for(int i=0; i<H; i++) {
for(int k=0; k<W; k++) {
tempArr[i][k] = B[i][k];
}
}
// 겹치는 부분을 계산한다.
for(int i=X; i<H; i++) { //
for(int k=Y; k<W; k++) {
tempArr[i][k] = B[i][k] - tempArr[i-X][k-Y];
}
}
StringBuilder sb = new StringBuilder();
for(int i=0; i<H; i++) {
for(int k=0; k<W; k++) {
sb.append(tempArr[i][k]).append(" ");
}
sb.append("\n");
}
System.out.println(sb);
}
}
728x90