배열 복원하기 (백준 16967)

코딩생활·2023년 10월 19일
0

백준문제풀이

목록 보기
8/308

안녕하세요. 오늘은 배열을 복원해볼 거예요.

문제

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

아이디어

그냥 배열 A랑 A를 X,Y 만큼 이동시킨 배열을 겹쳐서 더한 값이 B가 되는 것입니다.

맨 첫 줄은 A가 그대로 살아있습니다.
그래서 맨 첫줄부터 보면서 A에 있는 값을 X,Y를 더해준 위치에 있는 값에서 빼줍니다. 그러면 A가 나타나게 됩니다.

소스코드

#include <iostream>
using namespace std;

int main(void)
{
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	int H, W, X, Y, i, j, B[666][666] = { 0 };
	cin >> H >> W >> X >> Y;
	for (i = 0; i < H + X; i++)
	{
		for (j = 0; j < W + Y; j++)
		{
			cin >> B[i][j];
		}
	}
	for (i = 0; i < H; i++)
	{
		for (j = 0; j < W; j++)
		{
			B[i + X][j + Y] -= B[i][j];
			cout << B[i][j] << ' ';
		}
		cout << "\n";
	}
}


감사합니다.

0개의 댓글