노력만이 살길!/알고리즘
2001 파리 퇴치 (SW Expert Academy )
갱스타
2022. 2. 5. 22:06
- 구하는것 : 파리채로 때려서 잡았을때, 가장 많이 잡을 수 있는 파리의 수.
- 입력 : 테케T, 배열의 크기 N, 파리채의 크기 M
- 출력 : max 파리의 수
- 방법 : N*N 배열을 2중 반복문을 사용하여 순차적으로 탐색한다. 단, 파리채의 크기를 미리 고려하여 map을 빠져나가지 않는 만큼만.
https://swexpertacademy.com/main/solvingProblem/solvingProblem.do
public class SWEA_2001 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int T=scan.nextInt();
for(int test_case=1;test_case<T+1;test_case++) {
int sum=0; //잡은 파리의 개수의 합.
int max=0;//맥스
int N=scan.nextInt(); //맵의 크기
int M=scan.nextInt(); //파리채의 크기
int xt,yt;
int map[][]=new int[N][N];
for(int i=0;i<N;i++) {
for(int j=0;j<N;j++) {
map[i][j]=scan.nextInt();
}
}
for(int i=0;i<N-M+1;i++) {
for(int j=0;j<N-M+1;j++) {
sum=0;
//M의 수만큼 반복한다.
for(int k=0;k<M;k++) {
for(int p=0;p<M;p++) {
xt=i+k;
yt=j+p;
sum=sum+map[xt][yt];
}
}
if(max<sum) {
max=sum;
}
}
}
System.out.printf("#%d %d\n",test_case,max);
}
}
}