알고리즘(종합)/Lv.3

2805 - 농작물 수확하기

ch.0 2022. 11. 18. 23:33


package test;

import java.io.IOException;
import java.util.Scanner;

public class Solution {

	public static void main(String[] args) throws IOException {

		Scanner sc = new Scanner(System.in);

		int test = sc.nextInt();

		for (int k = 0; k < test; k++) {

			int size = sc.nextInt();
			int [][] array = new int[size][size];
			
			int sum=0;
			int middle =0;
			int count=0;

			
			//배열에 데이터 입력
			for(int i=0; i<size; i++) {
				String data = sc.next();
				for(int j=0; j<size; j++) {
					array[i][j] = Integer.parseInt((data).substring(j, j+1));

				}
			}

			middle = (size/2)+1;
			count=middle;
			//0번째행부터 중간행까지
			for(int i=0; i<(size/2)+1; i++) {
				
				for(int j=middle-1; j<count; j++ ) {
					if(j<size&&j>=0) {
					sum+=array[i][j];
					}
				}
				count++;
				middle--;
			}
			count=count-2;
			//중간행밑부터 마지막행까지
			for(int i=(size/2)+1; i<size; i++) {
				for(int j=middle+1; j<count; j++) {
					sum+=array[i][j];
				}
				count--;
				middle++;
			}

			
			System.out.println("#" + (k + 1) + " "+sum );
		}
	}

}

0번째 행부터 중간행까지는 시작점은 줄여주면서 반복횟수는 늘려줬다

 

중간행 다음부터는 시작점은 늘려주면서 반복횟수는 줄여줬다.