반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-19 00:03
관리 메뉴

ImJay

[SWEA/Java] 2001. 파리 퇴치 본문

SW Expert Academy/D2

[SWEA/Java] 2001. 파리 퇴치

ImJay 2024. 1. 23. 22:17
반응형

[SWEA/Java] 2001. 파리 퇴치

 

SW Expert Academy

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

swexpertacademy.com


해설

풀이

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

public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        // 테스트 케이스 수 입력
        int testCase = Integer.parseInt(br.readLine());

        // 각 테스트 케이스에 대한 처리
        for (int t = 1; t <= testCase; t++) {
            // 배열의 크기와 파리채의 크기 입력
            String input = br.readLine();
            StringTokenizer st = new StringTokenizer(input);
            int n = Integer.parseInt(st.nextToken()); // 배열의 크기
            int m = Integer.parseInt(st.nextToken()); // 파리채의 크기

            // 배열 초기화 및 입력
            int[][] graph = new int[n][n];
            for (int r = 0; r < n; r++) {
                input = br.readLine();
                st = new StringTokenizer(input);
                for (int c = 0; c < n; c++) {
                    graph[r][c] = Integer.parseInt(st.nextToken());
                }
            }

            int max = 0;
            // 파리채를 옮기면서 죽인 파리 수 계산
            for (int r = 0; r < n - m + 1; r++) {
                for (int c = 0; c < n - m + 1; c++) {
                    int sum = 0;
                    // 파리채 영역 내의 파리 수 합산
                    for (int i = r; i < r + m; i++) {
                        for (int j = c; j < c + m; j++) {
                            sum += graph[i][j];
                        }
                    }
                    // 최대값 갱신
                    max = Math.max(max, sum);
                }
            }

            // 결과 출력
            sb.append("#" + t + " " + max + "\n");
        }
        // 최종 출력
        System.out.print(sb);
    }
}
반응형
Comments