개발 공부 기록

[SWEA 2001번 /JAVA] 파리 퇴치 본문

PS/Brute Force

[SWEA 2001번 /JAVA] 파리 퇴치

나만없서고냥이 2023. 10. 17. 18:26

Question

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PzOCKAigDFAUq

 

SW Expert Academy

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

swexpertacademy.com

 


💡 Solution

완전 탐색으로 풀었습니다. 배열의 처음부터 M X M 이 가능한 곳까지를 범위로 잡고, 그 안에서 가능한 M X M 값을 다 비교하며 최댓값을 찾습니다.

 

💻 Code

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.BreakIterator;
import java.util.StringTokenizer;

public class SWEA2001 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int T = Integer.parseInt(br.readLine());
		
		for(int tc = 0; 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 = 0;
			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 p = 0; p < M; p++) {
							sum += arr[i + k][j + p];
						}
					}
					if(sum > max) {
						max = sum;
					}
				}
			}
			System.out.printf("#%d %d\n", tc + 1, max);
		}

	}

}

'PS > Brute Force' 카테고리의 다른 글

[Programmers / JAVA] 카펫  (1) 2023.11.20