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

๐Ÿ’ก๋ฌธ์ œ ๋ถ„์„ ์š”์•ฝ

X์นธ, Y์นธ ์”ฉ ๋ฐ€๋ ค ๊ฒน์ณ์ง„ ๋ฐฐ์—ด์„ ๋ณด๊ณ  ์›๋ž˜ ๋ฐฐ์—ด์„ ๊ตฌํ•œ๋‹ค.

๐Ÿ’ก์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

  1. ์›๋ž˜ ๋ฐฐ์—ด A๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค

  2. A๋ฅผ B์—์„œ ๊ฐ™์€ ์œ„์น˜์—์„œ ๋ณต์‚ฌํ•œ๋‹ค

  3. X์นธ, Y์นธ์”ฉ ์Šฌ๋ผ์ด๋”ฉ ๋œ ์œ„์น˜์— B์—์„œ A์˜ ๊ฐ’์„ ๋บ€ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค

https://blog.kakaocdn.net/dn/c4JgQi/btsEE17qCuw/OSOkwCkAdyindX1n8bpJ9k/img.jpg

https://blog.kakaocdn.net/dn/pOoBE/btsEF3jc6NO/huGR6gKiK0qR2KSQkTVLS1/img.jpg

๐Ÿ’ก์ฝ”๋“œ

import sys
input = sys.stdin.readline

H, W, X, Y = map(int, input().split())
B=[]
for i in range(0,H + X):
    B_row = list(map(int, input().split()))
    B.append(B_row)

#1. A๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”
A= [[0 for j in range(W)] for i in range(H)]

#2. A๋ฅผ B์—์„œ ๊ฐ™์€ ์œ„์น˜์—์„œ ๋ณต์‚ฌfor i in range(0, H):
   for j in range(0, W):
      A[i][j]=B[i][j]

#์•„๋ž˜๋กœ X์นธ, ์˜†์œผ๋กœ Y์นธ (์˜†์ด X๊ฐ€ ์•„๋‹˜ ์ฃผ์˜)#3. ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์— A ๋นผ๊ธฐfor i in range(X, H):
   for j in range(Y, W):
      A[i][j]=B[i][j]-A[i-X][j-Y]

#5. ์ถœ๋ ฅfor i in A:
    for j in i:
       print(j, end=' ')
    print('')

# ๋‚ด๊ฐ€ ๋งŒ๋“  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค# 3 3 1 1# 1 2 3 0# 4 6 8 3# 7 12 14 6# 0 7 8 9

๐Ÿ’ก์‹œ๊ฐ„๋ณต์žก๋„

for๋ฌธ์„ ์ด์ค‘์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ O(N^2)

๐Ÿ’ก ๋Š๋‚€์  or ๊ธฐ์–ตํ•  ์ •๋ณด

ํŒŒ์ด์ฌ์—์„œ ์ด์ค‘๋ฐฐ์—ด์„ ์ดˆ๊ธฐํ™” ํ•  ๋–„,

A= [[0]*H]*W๋กœ ์„ ์–ธํ•˜๋ฉด ๋ฐฐ์—ด์ด ๋ณต์‚ฌ๋˜๋ฏ€๋กœ ๋‹ค๋ฅธ ์นธ์˜ ๊ฐ’์„ ๋ฐ”๊พธ๋ฉด ๊ทธ ์—ด์˜ ๋ชจ๋“  ๊ฐ’์ด ๋ฐ”๋€Œ๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.

A= [[0 for j in range(W)] for i in range(H)] ๋กœ for๋ฌธ์„ ์ด์šฉํ•ด์„œ ์„ ์–ธํ•ด์•ผํ•œ๋‹ค.