🌞Algorithm/🔥Baekjoon

[Baekjoon] 6124_Good Grass

뿌야._. 2025. 4. 22. 11:57
문제(출처: https://www.acmicpc.net/problem/6124)

< Good Grass >

 

문제 풀이 

 

4중 for문을 사용하여 전체 탐색해 3x3 구간의 합이 가장 클 때의 위치를 찾는다.

 

my solution (Java)

 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.StringTokenizer;
 
 public class _6124_ { // Good Grass
 
 	public static void main(String[] args) throws IOException {
 		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
 		StringTokenizer st = new StringTokenizer(bf.readLine());
 
 		int r = Integer.parseInt(st.nextToken());
 		int c = Integer.parseInt(st.nextToken());
 
 		int arr[][] = new int[r][c];
 		for (int i = 0; i < r; i++) {
 			st = new StringTokenizer(bf.readLine());
 			for (int j = 0; j < c; j++) {
 				arr[i][j] = Integer.parseInt(st.nextToken());
 			}
 		}
 
 		int max = 0, x = 0, y = 0;
 		for (int i = 0; i <= r - 3; i++) {
 			for (int j = 0; j <= c - 3; j++) {
 				int sum = 0;
 				for (int k = 0; k < 3; k++) {
 					for (int l = 0; l < 3; l++) {
 						sum += arr[i + k][j + l];
 					}
 				}
 				if (max < sum) {
 					max = sum;
 					x = i + 1;
 					y = j + 1;
 				}
 			}
 		}
 		System.out.println(max);
 		System.out.println(x + " " + y);
 	}
 }
변수)
r, c : 행, 열
arr : 배열
max, x, y : 가장 큰 합, 위치
sum : 합

 

행, 열 크기를 입력받아 크기만큼 배열 값을 입력받는다. 배열을 전체 탐색하며 3x3 구간의 합을 구한다. 합이 최대일 때 max와 위치를 업데이트한다. 최종 max 값과 위치를 출력한다.



 

'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글

[Baekjoon] 21221_Bold  (0) 2025.04.24
[Baekjoon] 16815_Star in Parentheses  (1) 2025.04.23
[Baekjoon] 16061_You Are Fired!  (1) 2025.04.21
[Baekjoon] 17048_Jarvis  (1) 2025.04.11
[Baekjoon] 5263_samba  (0) 2025.04.10