🗒️ 파이썬 코드 풀이
T = int(input())
for tc in range(1,T+1):
N,M = map(int,input().split())
lst = [list(map(int,input().split())) for _ in range(N)]
mx = 0
for i in range(N-M+1):
for j in range(N-M+1):
tmp_sum = 0
for k in range(M):
tmp_sum += sum(lst[i+k][j:j+M])
mx = max(mx,tmp_sum)
print(f"#{tc} {mx}")
1. N*N 크기의 배열을 만들어준다.
2. N-M+1 만큼의 반복문을 i,j 각각 돌려준다. ( N-M+1까지 범위만 가능)
3. lstp[i][j] 위치에서 행,열 방향으로 각각 +M 만큼 sum 을 해주고, 최대값을 갱신한다.
🧐 문제 코멘트
별로 어렵지는 않았던 문제이다.
리스트 인덱싱에 좀 익숙해지면 , 금방 풀 수 있는 문제라고 생각한다 !
📚 문제
N x N 배열 안의 숫자는 해당 영역에 존재하는 파리의 개수를 의미한다.
아래는 N=5 의 예이다.
M x M 크기의 파리채를 한 번 내리쳐 최대한 많은 파리를 죽이고자 한다.
죽은 파리의 개수를 구하라!
예를 들어 M=2 일 경우 위 예제의 정답은 49마리가 된다.
[제약 사항]
1. N 은 5 이상 15 이하이다.
2. M은 2 이상 N 이하이다.
3. 각 영역의 파리 갯수는 30 이하 이다.
[입력]
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에 N 과 M 이 주어지고,
다음 N 줄에 걸쳐 N x N 배열이 주어진다.
[출력]
출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
'알고리즘 > 알고리즘_swea' 카테고리의 다른 글
[Python][SWEA] 1979. 어디에 단어가 들어갈 수 있을까 D2 (0) | 2024.05.18 |
---|---|
[Python][SWEA] 2806. N-Queen D3 (0) | 2024.05.18 |
[Python][SWEA] 1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기 (0) | 2024.05.18 |
[Python][SWEA] 1954. 달팽이 숫자 D2 (0) | 2024.05.18 |
[Python][SWEA] 1244. [S/W 문제해결 응용] 2일차 - 최대 상금 (0) | 2024.05.18 |