728x90
문제
풀이
/*
* 입력
* 1. 테스트 케이스 T
* 2. 배열의 크기 N 파리채의 크기 M
* 3. N줄에 걸쳐 N*N 배열
* 출력
* 1. "#" + tc + " " + ans
*
* >> for문 돌려서 가장 큰 값 저장하기
*/
for문 돌릴 때 N-M만큼 돌려야 배열을 벗어나지 않는다는 것만 알고 있으면 그렇게 어렵지 않다
코드
package com.ssafy.im;
import java.io.*;
import java.util.*;
public class D3_2001_파리퇴치 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
for(int tc = 1; tc<=T; tc++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[][] arr = new int[N][N];
for(int i = 0; i<N; i++) {
st = new StringTokenizer(br.readLine());
for(int j = 0; j<N; j++) {
arr[i][j] = Integer.parseInt(st.nextToken());
}
}
int max = Integer.MIN_VALUE;
//파리가 있는 영역
for(int i = 0; i<=N-M; i++) {
for(int j = 0; j<=N-M; j++) {
int sum = 0;
//파리채
for(int k = 0; k<M; k++) {
for(int l = 0; l<M; l++) {
sum += arr[i+k][j+l];
}
}
max = Math.max(max, sum);
}
}
sb.append("#").append(tc).append(" ").append(max).append("\n");
}
System.out.println(sb);
}
}
결과
#자바 #java #swea #알고리즘
728x90
'알고리즘 > SWEA' 카테고리의 다른 글
[java][swea][d3] 1873. 상호의 배틀필드 (0) | 2022.02.27 |
---|---|
[java][swea][d3] 1208. Flatten (0) | 2022.02.27 |
[java][swea][d4] 7465. 창용 마을 무리의 개수 (0) | 2022.02.22 |
[java][swea][d3] 6808. 규영이와 인영이의 카드게임 (0) | 2022.02.14 |
[java][swea][d4] 5432. 쇠막대기 자르기 (0) | 2022.02.10 |