Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

끄적끄적

SWE 농작물 수확하기 본문

알고리즘

SWE 농작물 수확하기

yenacathy97 2021. 8. 6. 20:59

마름모 모양으로 표시된 구역만 더하는데, n의 크기에 따라서 n만큼 개수를 더했다가 1까지 작아지는 형태로 규칙성을 가진다. 따라서 한줄에 받을 개수와 시작 위치를 저장하는 배열을 만들고

해당하는 위치만 더해주었다.

package day0803;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Farm {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		int test= Integer.parseInt(bf.readLine());
		for(int t=1;t<=test;t++) {
			int sum=0;
			int n=Integer.parseInt(bf.readLine());
			int [][]arr=new int[n+1][n+1];
			for(int i=1;i<=n;i++) {
				String s= bf.readLine();
				for(int k=0;k<s.length();k++) {
					arr[i][k+1]=s.charAt(k)-'0';
				}
			}
			List<Integer>start= new ArrayList<>();
			List<Integer> num= new ArrayList<>();
			for(int i=n/2+1;i>=1;i--)
				start.add(i);
			for(int i=2;i<=n/2+1;i++)
				start.add(i);
				
			for(int k=1;k<=n;k+=2) 
				num.add(k);
			for(int k=n-2;k>=1;k-=2)
				num.add(k);
			for(int i=0;i<start.size();i++) {
				for(int j=1;j<=num.get(i);j++) {
					sum+=arr[i+1][start.get(i)+j-1];
				}

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

	}

}

'알고리즘' 카테고리의 다른 글

SWE Flatten  (0) 2021.08.06
SWE 상호의 배트필드  (0) 2021.08.06
SWE 파리 퇴치  (0) 2021.08.06
프로그래머스 - 타겟 넘버(c++)  (0) 2021.04.21
백준 1916 최소 비용 구하기  (0) 2021.04.16
Comments