[Silver III] Title: 배열 복원하기, Time: 108 ms, Memory: 39516 KB -BaekjoonHub
This commit is contained in:
40
백준/Silver/16967. 배열 복원하기/README.md
Normal file
40
백준/Silver/16967. 배열 복원하기/README.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# [Silver III] 배열 복원하기 - 16967
|
||||
|
||||
[문제 링크](https://www.acmicpc.net/problem/16967)
|
||||
|
||||
### 성능 요약
|
||||
|
||||
메모리: 39516 KB, 시간: 108 ms
|
||||
|
||||
### 분류
|
||||
|
||||
구현
|
||||
|
||||
### 제출 일자
|
||||
|
||||
2026년 1월 12일 21:56:31
|
||||
|
||||
### 문제 설명
|
||||
|
||||
<p>크기가 H × W인 배열 A와 두 정수 X와 Y가 있을 때, 크기가 (H + X) × (W + Y)인 배열 B는 배열 A와 배열 A를 아래로 X칸, 오른쪽으로 Y칸 이동시킨 배열을 겹쳐 만들 수 있다. 수가 겹쳐지면 수가 합쳐진다.</p>
|
||||
|
||||
<p>즉, 배열 B의 (i, j)에 들어있는 값은 아래 3개 중 하나이다.</p>
|
||||
|
||||
<ul>
|
||||
<li>(i, j)가 두 배열 모두에 포함되지 않으면, B<sub>i,j</sub> = 0이다.</li>
|
||||
<li>(i, j)가 두 배열 모두에 포함되면, B<sub>i,j</sub> = A<sub>i,j</sub> + A<sub>i-X,j-Y</sub>이다.</li>
|
||||
<li>(i, j)가 두 배열 중 하나에 포함되면, B<sub>i,j</sub> = A<sub>i,j</sub> 또는 A<sub>i-X,j-Y</sub>이다.</li>
|
||||
</ul>
|
||||
|
||||
<p>배열 B와 정수 X, Y가 주어졌을 때, 배열 A를 구해보자.</p>
|
||||
|
||||
### 입력
|
||||
|
||||
<p>첫째 줄에 네 정수 H, W, X, Y가 주어진다. 둘째 줄부터 H + X개의 줄에 배열 B의 원소가 주어진다.</p>
|
||||
|
||||
<p>항상 배열 A가 존재하는 경우만 입력으로 주어진다.</p>
|
||||
|
||||
### 출력
|
||||
|
||||
<p>총 H개의 줄에 배열 A의 원소를 출력한다.</p>
|
||||
|
||||
8
백준/Silver/16967. 배열 복원하기/배열 복원하기.py
Normal file
8
백준/Silver/16967. 배열 복원하기/배열 복원하기.py
Normal file
@@ -0,0 +1,8 @@
|
||||
import sys
|
||||
H, W, X, Y = map(int, sys.stdin.readline().strip().split())
|
||||
B = [list(map(int, sys.stdin.readline().strip().split())) for _ in range(H+X)]
|
||||
for i in range(X,H):
|
||||
for j in range(Y,W):
|
||||
B[i][j] = B[i][j] - B[i-X][j-Y]
|
||||
for result in B[:H] :
|
||||
print(*result[:W])
|
||||
Reference in New Issue
Block a user