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
'[알고리즘] > 알고리즘' 카테고리의 다른 글
[알고리즘] 베스트앨범 (프로그래머스 3레벨) (0) | 2022.04.23 |
---|---|
[알고리즘] 백준 22862번 : 가장 긴 짝수 연속한 부분 수열 (large) (실버1) (0) | 2022.04.23 |
[알고리즘] 백준 1268번 : 임시 반장 정하기 (브론즈1) (0) | 2022.04.18 |
[알고리즘] 백준 1205번 : 등수 구하기 (실버4) (0) | 2022.04.15 |
[알고리즘] 백준 17389번 : 보너스 점수 (브론즈2) (0) | 2022.04.15 |