[swexpert] 2805. 농작물 수확하기 (java)
728x90
반응형
1) 열의 인덱스가 0, 1, 2, 3 만큼 증가할 때 사각형 가운데 n/2까지는 열의 인덱스(i) +1 까지 왼쪽 오른쪽을 더해가며
검사한다
2) i== n/2+1 부터는 검사 횟수를 n-i 번 왼쪽 오른쪽을 더하며 (총 검사횟수는 줄어듬) 더한다.
import java.util.Scanner;
public class Solution {
static int t;
static int n;
static int[][] farm;
static int sum;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
t=sc.nextInt();
for (int tc = 1; tc <= t; tc++) {
sum=0;
n=sc.nextInt();
farm=new int[n][n];
sc.nextLine();
for (int i = 0; i < n; i++) {
String s=sc.nextLine();
for (int j = 0; j < n; j++) {
farm[i][j]=s.charAt(j)-'0';
}
}
getSum();
System.out.printf("#%d %d",tc,sum);
System.out.println();
}
}
private static void getSum() {
int add=1;
for (int i = 0; i <= farm.length/2; i++) {
int left=n/2;
int right=left;
for (int j = 0; j < i+1; j++) {
sum+=farm[i][left];
if(left!=right)sum+=farm[i][right];
left-=1;
right+=1;
}
}
for (int i = farm.length/2+1; i <farm.length ; i++) {
int left=n/2;
int right=left;
for (int j = 0; j < n-i; j++) {
sum+=farm[i][left];
if(left!=right)sum+=farm[i][right];
left-=1;
right+=1;
}
}
}
}
728x90
반응형
TAGS.