Java으로 구현한 2001번 파리 퇴치 문제 풀이입니다.
import java.util.*;
class Main {
public static void main(String[] args) throws Exception {
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 data[][] = new int[n][n];
int result = 0;
for (int i=0; i<n; i++) {
for (int j=0; j<n; j++) {
data[i][j] = sc.nextInt();
}
}
for (int k=0; k<n-m+1; k++) {
for (int l=0; l<n-m+1; l++) {
int temp = 0;
for (int i=k; i<k+m; i++) {
for (int j=l; j<l+m; j++) {
temp += data[i][j];
}
}
result = Math.max(result, temp);
}
}
System.out.println("#" + tc + " " + result);
}
}
}
1. 각 테스트 케이스마다 n x n 크기의 데이터를 입력받아 data 2차원 배열에 저장한다.
2. 4중 for문을 통해 (0, 0) 부터 (n-m, n-m) 까지 모든 좌표에 대한 m x m 크기의 영역을 확인하여 temp 변수에 누적한다.
3. result와 temp를 비교하여 더 큰 값을 result에 갱신한다.
4. 반복문 작업이 모두 끝나면 최종적으로 해당 테스트 케이스 번호와 함께 result 값을 출력한다.
'SWEA(JAVA) 풀이 > D2' 카테고리의 다른 글
SWEA[D2] (JAVA) 1986번 지그재그 숫자 풀이 (0) | 2022.08.01 |
---|---|
SWEA[D2] (JAVA) 1989번 초심자의 회문 검사 풀이 (0) | 2022.08.01 |
SWEA[D2] (JAVA) 2005번 파스칼의 삼각형 풀이 (0) | 2022.07.29 |
SWEA[D2] (JAVA) 2007번 패턴 마디의 길이 풀이 (2) | 2022.07.29 |
SWEA[D2] (JAVA) 1926번 간단한 369게임 풀이 (0) | 2022.07.29 |