SWEA - 2805. 농작물 수확하기 :: 매운코딩
728x90
300x250

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GLXqKAWYDFAXB&categoryId=AV7GLXqKAWYDFAXB&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

마름모 별찍기만 잘 되어있으면 금방 풀 수 있는 문제였다.

공백을 주던 부분을 카운팅해서 y좌표값 넣어주기!

import java.util.Scanner;
import java.io.FileInputStream;

/*
   사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
   이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
 */
class Solution
{
	public static void main(String args[]) throws Exception
	{
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		for(int tc=0;tc<T;tc++) {
			int n = sc.nextInt();
			int map[][] = new int[n][n];
			int sum=0;

			for(int i=0;i<n;i++) {
				String str = sc.next();
				for(int j=0;j<str.length();j++) {
					map[i][j]=Character.getNumericValue(str.charAt(j));
				}
			}

			int k = n/2+1; 
			//마름모 위
			for(int i=0;i<k;i++) {
				int y=0;
				for(int j=k;j>i+1;j--) {
					//System.out.print(" ");
					y++;
				}
				for(int j=0;j<=i*2;j++,y++) {
					sum+=map[i][y];
					//System.out.print(map[i][y]);					
				}
				//System.out.println();
			}

			//마름모 아래
			int x= k;
			for(int i=n-k;i>0;i--,x++) {
				int y=0;
				for(int j=0;j<k-i;j++) {
					//System.out.print(" ");
					y++;
				}
				for(int j=0;j<i*2-1;j++,y++){
					sum+=map[x][y];
					//System.out.print(map[x][y]);
				}
				//System.out.println();
			}

			System.out.println("#"+(tc+1)+" "+sum);
		}
	}
}
728x90

+ Recent posts