APCS Jun 2024 - o077 Q2 [Python]
문제 설명:
H × W 전자 캔버스의 초기값은 모두 0으로, 색이 없는 상태입니다. N번의 붓 동작을 시뮬레이션하세요. 각 동작은 좌표 (r, c)에 t초 동안 머물며 맨해튼 거리가 t 이하인 모든 칸에 색상 값 x를 더합니다. 여러 색이 겹치면 값을 합산합니다. N번의 동작 후 캔버스 상태를 출력하세요.
H,W,N = map(int,input().split())
a = [[0 for _ in range(W)] for _ in range(H)]
for _ in range(N):
r,c,time,num = map(int,input().split())
for rr in range(r - time,r + time + 1):
for cc in range(c - time , c + time +1):
if 0 <= rr < H and 0 <= cc < W and abs(rr - r)+ abs(cc-c) <= time: # 曼哈頓距離公式
a[rr][cc] += num
for i in a:
for j in i:
print(j,end=' ')
print('\n', end='')
주요 포인트
- 맨해튼 거리: 직교 격자에서 두 점 사이의 가로 거리와 세로 거리를 더한 값입니다.
(r, c)와(rr, cc)사이의 공식은 다음과 같습니다.D = |rr - r| + |cc - c|
핵심 개념:
- 시뮬레이션?
- [✔️] 필요하면 코드를 그대로 사용해도 됩니다.
- [✔️] 공유할 때 출처를 표시해 주세요.

이 글은 번체 중국어 원문을 AI로 번역했습니다. 의미나 표현에 차이가 있을 수 있으니 정확한 내용은 번체 중국어 원문을 기준으로 확인해 주세요.