본문 바로가기
Problem Solving/SWEA

[SWEA] 2805. 농작물 수확하기

by 테리는당근을좋아해 2020. 2. 16.

문제

위와 같은 방식으로 농작물을 수확한다. n * n 크기의 2차원 배열이 주어질 때, 수확한 농작물의 값을 구하는 문제

 

풀이방법

주어진 2차원 배열을 a[n][n]이라고 할 때,

 

                                    a[0][n/2]

                   a[1][n/2-1] a[1][n/2] a[1][n/2+1]

a[2][n/2-2] a[2][n/2-1] a[2][n/2] a[2][n/2+1] a[2][n/2+2]

                                         ...

              a[n-2][n/2-1] a[n-2][n/2] a[n-2][n/2+1]

                                    a[n-1][n/2]

 

의 패턴으로 농작물을 수확한다.

 

소스코드

package samsung;

import java.util.*;

public class s_2805 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int test = sc.nextInt();
		
		for(int t = 1; t <= test; t++) {
			int n = sc.nextInt();
			int[][] a = new int[n][n];
			
			for(int i = 0; i < n; i++) {
				String s = sc.next();
				for(int j = 0; j < n; j++) {
					a[i][j] = s.charAt(j) - '0';
				}
			}
			int sum = 0;
			int range = 1;
			for(int i = 0; i < n/2; i++) {
				int p = n/2 - i;
				for(int j = 0; j < range; j++) {
					sum += a[i][p+j];
					sum += a[n-1-i][p+j];
				}
				range += 2;
			}
			for(int i = 0; i < n; i++) {
				sum += a[n/2][i];
			}
			System.out.println("#" + t + " " +sum);
		}
	}
}

 

댓글