[swexpert] 2001. 파리퇴치 (python, java, D2)
728x90
반응형
현재 위치로 부터 m칸의 크기 안에 있는 위치의 값들을 모두 더해준다
모든 위치를 검사해준다
범위는 전체 배열 길이-m까지 시작위치로 잡고 해당 위치에서 가로 세로 현재위치+m위치까지 검사해준다
1. 파이썬 풀이
t=int(input())
for i in range(1,t+1):
result = 0
n,m=map(int,input().split())
arr=[]
for _ in range(n):
a=list(map(int,input().split()))
arr.append(a)
for y in range(0,n-m+1): //현재 위치, 여기서부터 m칸을 검사하므로 인덱스가 넘어가지 않게 주의
for x in range(0,n-m+1):
sum=0
for yy in range(y,y+m): // 현재 위치를 포함하여 m칸 검사한다
for xx in range(x,x+m):
sum+=arr[yy][xx]
if sum>result:
result=sum
print(f'#{i} {result}')
2. 자바 풀이
import java.util.Arrays;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
for (int tc = 1; tc <=t; tc++) {
int n=sc.nextInt();
int m=sc.nextInt();
int [][] arr=new int[n][n];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
arr[i][j]=sc.nextInt();
}
}
// System.out.println(Arrays.deepToString(arr));
int result=Integer.MIN_VALUE;
for (int i = 0; i <= arr.length-m; i++) {
for (int j = 0; j <= arr.length-m; j++) {
int sum=0;
for (int j2 = i; j2 < i+m; j2++) {
for (int k = j; k < j+m; k++) {
sum+=arr[j2][k];
}
}
if(result<sum)result=sum;
}
}
System.out.printf("#%d %d\n",tc,result);
}
sc.close();
}
}
728x90
반응형
'swexpert' 카테고리의 다른 글
[swexpert] 1984. 중간 평균값 구하기 (python, java) (0) | 2020.12.29 |
---|---|
[swexpert] 1989. 초심자의 회문 검사 (python, java) (0) | 2020.12.29 |
[swexpert] 2005. 파스칼의 삼각형 (python, java) (0) | 2020.12.28 |
[swexpert] 2007. 패턴 마디의 길이 (python, java, d2) (0) | 2020.12.28 |
[swexpert] 1926번 간단한 369게임 (python, java, D2) (0) | 2020.12.28 |
TAGS.