"SWEA 2001 파리 퇴치"의 두 판 사이의 차이

 
(사용자 2명의 중간 판 2개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
==개요==
;SWEA 2001 파리 퇴치
{{SWEA|난이도=2}}
* https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PzOCKAigDFAUq
* N×N 크기의 배열이 주어지고 그 일부분인 M×M 크기의 부분배열의 합의 최대값을 구하는 문제
 
{{SWEA 헤더}}
{{SWEA 난이도 2-1}}
|}


==C++==
==C++==
<source lang='cpp'>
<syntaxhighlight lang='cpp'>
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
39번째 줄: 35번째 줄:
}
}
}
}
</source>
</syntaxhighlight>


==Java==
==Java==
<source lang='java'>
<syntaxhighlight lang='java'>
import java.util.Scanner;
import java.util.Scanner;
class Solution {
class Solution {
75번째 줄: 71번째 줄:
}
}


</source>
</syntaxhighlight>

2023년 8월 25일 (금) 01:44 기준 최신판

1 개요[ | ]

SWEA 2001 파리 퇴치

2 C++[ | ]

#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[ | ]

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);
        }
    }
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}