728x90
반응형
풀기 전 생각해보기😮
- +방향, x방향에 대해서 어떻게 탐색할 것인가
- 세기가 달라질 때를 고려하는 방법은?
풀이🛫
T = int(input())
for t in range(T):
N, M = map(int, input().split())
arr = [list(map(int, input().split())) for i in range(N)]
catch = []
answer = 0
# +형: 12, 3, 6, 9
dpcol = [-1, 0, 1, 0]
dprow = [0, 1, 0, -1]
# x형: 2, 4, 8, 10
dxcol = [1, -1, -1, 1]
dxrow = [1, 1, -1, -1]
# 세기가 M일 때 +형에서 잡을 수 있는 파리의 수
for col in range(N):
for row in range(N):
fly = arr[col][row]
for m in range(1,M):
for v in range(4):
ncol = col+dpcol[v]*m
nrow = row+dprow[v]*m
if 0<=ncol<N and 0<=nrow<N:
fly += arr[ncol][nrow]
catch.append(fly)
# 세기가 M일 때 x형에서 잡을 수 있는 파리의 수
for col in range(N):
for row in range(N):
fly = arr[col][row]
for m in range(1,M):
for v in range(4):
ncol = col+dxcol[v]*m
nrow = row+dxrow[v]*m
if 0<=ncol<N and 0<=nrow<N:
fly += arr[ncol][nrow]
catch.append(fly)
# 잡을 수 있는 파리의 수에서 최대값을 탐색
for i in catch:
if i > answer:
answer = i
print(f"#{t+1}", answer)
핵심 정리🎁
- 탐색 방향(12, 3, 6, 9 / 2, 4, 8, 10)을 먼저 정해두고 값을 탐색하기
링크💎
후기 😎
- 변화량을 이용해서 푸는 문제에 적응되어가는 듯..!
'SSAFY > SWEA' 카테고리의 다른 글
[SWEA] #1216. 회문 2_파이썬 (0) | 2022.08.16 |
---|---|
[SWEA] #4861. 회문_파이썬 (0) | 2022.08.16 |
[SWEA] 1959. 두 개의 숫자열 (0) | 2022.08.15 |
[SWEA] #4831. 전기버스_파이썬 (0) | 2022.08.12 |
[SWEA] #1211. Ladder2_파이썬 (0) | 2022.08.11 |