[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.

Comments