본문 바로가기
알고리즘/SWEA

[Java] SWEA2001_파리퇴치

by 댕꼬 2022. 3. 16.
728x90

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

 

SW Expert Academy

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

swexpertacademy.com

입력으로 주어진 N*N배열안에 M*M크기의 파리채를 내려쳐 가장 많은 파리를 죽이는 경우를 찾는 문제

 

[입력]

5 2
1 3 3 6 7
8 13 9 12 8
4 16 11 12 6
2 4 1 23 2
9 13 4 7 3

 

[출력]

#1 49

 

 

[풀이]

다중for문을 돌려 풀었다.

=> N*N의 위치를 정하는 이중for문 + 그 위치에서 M*M을 탐색하여 더하는 이중for문

 

public class swea_2001 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int tc = sc.nextInt();

		for (int t = 0; t < tc; t++) {
			int N = sc.nextInt();
			int M = sc.nextInt();
			int cha = N-M;
			int max = 0, sum = 0;

			int[][] arr = new int[N][N];
			for (int r = 0; r < N; r++) {
				for (int c = 0; c < N; c++) {
					arr[r][c] = sc.nextInt();
				}
			}

			for(int i=0; i<=cha; i++) {
				for(int j=0; j<=cha; j++) {
					sum=0;
					for(int r=i; r<i+M;r++) {
						for(int c=j; c<j+M;c++) {
							sum+=arr[r][c];
							
						}
					}
					if(max<sum) max=sum;
				}
			}
			
			System.out.printf("#%d %d\n",t+1,max);
		}
	}
}

 

 

728x90

'알고리즘 > SWEA' 카테고리의 다른 글

[Java] SWEA2805_농작물수확하기  (0) 2022.03.16
[Java] SWEA1873_상호의배틀필드  (0) 2022.03.16
[Java] SWEA1208_Flatten  (0) 2022.03.16
[Java] SWEA1289_원재의메모리복구하기  (0) 2022.03.12
[Java] SWEA1954_달팽이숫자  (0) 2022.03.12

댓글