SWEA(JAVA) 풀이/D2

SWEA[D2] (JAVA) 2001번 파리 퇴치 풀이

개발윗미 2022. 8. 1. 13:42

Java으로 구현한 2001번 파리 퇴치 문제 풀이입니다.

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PzOCKAigDFAUq&categoryId=AV5PzOCKAigDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=PYTHON&select-1=2&pageSize=10&pageIndex=1 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


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 값을 출력한다.