개발 공부 기록
[SWEA 2001번 /JAVA] 파리 퇴치 본문
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 |
---|