반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [SW expert Academy] SWEA 2805번 농작물 수확하기 자바(Java)

 

2. 코드

import java.util.Arrays;
import java.util.Scanner;

public class Solution {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int T = sc.nextInt();//테스트케이스 입력
		
		for(int i=1;i<=T;i++) {
			int sum = 0; //수익의 합
			int N = sc.nextInt();
			int[][] arr = new int[N][N];
			
			//배열 입력
			for(int j=0;j<N;j++) {
				String str = sc.next();
				for(int k=0;k<str.length();k++) {
					arr[j][k] = str.charAt(k) - '0';
				}
			}
			
			
			//상단 삼각형
			for(int d=0;d<N/2;d++) {
				for(int e = N/2-d; e<=(N/2+d);e++) {
					sum += arr[d][e];
				}
			}
			
			//하단 삼각형
			for(int d=N/2;d>=0;d--) {
				for(int e = N/2-d; e<=N/2+d;e++) {
					sum += arr[N-d-1][e];
				}
			}
			System.out.printf("#%d %d",i,sum);
			System.out.println("");
		}
	}
}

 

마름모 모양에서 상단 삼각형과 하단 삼각형을 분리하여 합을 구한다.

 

농장의크기(N)을 2로나누면 N/2값은 배열의 중앙 index 값이 되므로,

 

N/2-d  N  N/2+d 이런 식으로 배열의 값을 더하면 된다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기