농장을 위아래 절반으로 나누어 계산
import java.util.Scanner;
class Solution {
public static void main(String args[]) throws Exception {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int test_case = 1; test_case <= T; test_case++) {
int N = sc.nextInt();
int mid = N / 2;
int sum = 0;
for(int i = 0; i < N; i++) {
String crop = sc.next();
if(i <= mid) {
for(int j = mid - i; j < mid + i + 1; j++) {
sum += crop.charAt(j) - '0';
}
} else {
for(int j = i - mid; j < N + mid - i; j++) {
sum += crop.charAt(j) - '0';
}
}
}
System.out.printf("#%s %s%n", test_case, sum);
}
}
}
농장 중앙으로부터의 거리로 계산 (가상의 2차원 배열)
import java.util.Scanner;
class Solution {
public static void main(String args[]) throws Exception {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int test_case = 1; test_case <= T; test_case++) {
int N = sc.nextInt();
int sum = 0;
for(int i = 0; i < N; i++) {
char[] arr = sc.next().toCharArray();
for(int j = 0; j < N; j++) {
int distance = Math.abs(i - N/2) + Math.abs(j - N/2);
if(distance <= N / 2) {
sum += arr[j] - '0';
}
}
}
System.out.printf("#%s %s%n", test_case, sum);
}
}
}