1 개요[ | ]
- SWEA 2001 파리 퇴치
- SW Expert Academy 2001번 문제
- SWEA D2
- N×N 크기의 배열이 주어지고 그 일부분인 M×M 크기의 부분배열의 합의 최대값을 구하는 문제
2 C++[ | ]
C++
Copy
#include <iostream>
using namespace std;
int main() {
int T;
scanf("%d", &T);
int N, M;
int a[15][15];
for (int tc=1; tc<=T; tc++) {
scanf("%d", &N);
scanf("%d", &M);
for(int i=0; i<N; i++) {
for(int j=0; j<N; j++) {
scanf("%d", &a[i][j]);
}
}
int max = 0;
for(int i=0; i<=N-M; i++) {
for(int j=0; j<=N-M; j++) {
int sum = 0;
for(int k=i; k<i+M; k++) {
for(int l=j; l<j+M; l++) {
sum += a[k][l];
}
}
if( sum > max ) max = sum;
}
}
printf("#%d %d\n", tc, max);
}
}
3 Java[ | ]
Java
Copy
import java.util.Scanner;
class Solution {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int t=1; t<=T; t++) {
int n = sc.nextInt();
int m = sc.nextInt();
int a[][] = new int[n][n];
int i, j, k, l;
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
a[i][j] = sc.nextInt();
}
}
int sum, max = 0;
for(i=0; i<n-m+1; i++) {
for(j=0; j<n-m+1; j++) {
sum = 0;
for(k=0; k<m; k++) {
for(l=0; l<m; l++) {
sum += a[i+k][j+l];
}
}
if( sum > max ) max = sum;
}
}
System.out.format("#%d %d\n", t, max);
}
}
}
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.