문제 링크
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PzOCKAigDFAUq
C++ 풀이
#include <iostream>
#include <vector>
using namespace std;
int main() {
int T, N, M, max_sum;
cin >> T;
for (int i = 1; i <= T; i++) {
max_sum = 0;
cin >> N >> M;
vector <vector<int>> board(N);
for (int j = 0; j < N; j++) {
board[j].resize(N);
for (int k = 0; k < N; k++)
cin >> board[j][k];
}
for (int j = 0; j <= N - M; j++) {
for (int k = 0; k <= N - M; k++) {
int sum = 0;
for (int p = j; p < j + M; p++) {
for (int q = k; q < k + M; q++)
sum += board[p][q];
}
if (sum > max_sum)
max_sum = sum;
}
}
cout << "#" << i << " " << max_sum << endl;
}
}
완전 탐색으로 풀었다.
반응형
'알고리즘 · 코딩' 카테고리의 다른 글
[프로그래머스] 파일명 정렬 (0) | 2021.03.10 |
---|---|
[SWEA 9317] 석찬이의 받아쓰기 (0) | 2021.03.09 |
[SWEA 1989] 초심자의 회문 검사 (0) | 2021.02.20 |
[프로그래머스] 3진법 뒤집기 (1) | 2021.02.15 |
[프로그래머스] 풍선 터트리기 (0) | 2021.02.13 |