728x90
- 1차 접근 방법
- 정답 여부
1차 접근 방법
N * N 의 사이즈에서 각 칸 마다 파리의 숫자가 있는데 M * M 사이즈의 파리채를 통해 가장 많은 수의 파리를 잡아야 하는 것이 목적이다.
이를 위해 N * N 배열을 순회하면서 M * M 사이즈만큼 확인해서 각 sum 을 구하고 그 가운데 최댓값을 구하는 방법을 고안하였다.
그러기 위해서는 N - M + 1 범위까지만 순회하여도 M 사이즈 만큼은 다시 순회를 할 것이기 때문에 세로, 가로는 처음에 N - M +1 만큼 순회를 2중으로 순회를 하고,그 안에서 다시 M 만큼 가로, 세로 순회를 해야한다.
그리고 M만큼 순회를 하기 전에 현재 파리채의 sum을 0으로 초기화하고 계산한 다음 max_sum과 비교하면서 최댓값을 정해야한다.
아래가 구현 코드이다!!
for문이 4번 중첩되다니...ㅜ
T = int(input())
for test_case in range(1, T + 1):
N, M = map(int, input().split())
N_list = [list(map(int, input().split())) for _ in range(N)]
max_sum = 0
for i in range(N - M + 1):
for j in range(N - M + 1):
current_sum = 0
for x in range(M):
for y in range(M):
current_sum += N_list[i + x][j + y]
if current_sum > max_sum:
max_sum = current_sum
print(f'#{test_case} {max_sum}')
정답 여부
- 정답!
728x90
반응형
'Study > Algorithm' 카테고리의 다른 글
[백준 11660] 구간 합 구하기 5 (0) | 2024.08.21 |
---|---|
[baekjoon] 세탁소 사장 동혁(2720) (0) | 2024.05.31 |
[SWEA] 5658. [모의 SW 역량테스트] 보물상자 비밀번호 (0) | 2024.05.18 |
[SWEA] 1954. 달팽이 숫자 (0) | 2024.05.17 |
[SWEA]1244. [S/W 문제해결 응용] 2일차 - 최대 상금 (python) (0) | 2024.05.17 |