문제(출처: 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 |