본문 바로가기
알고리즘/SWEA

[Java] SWEA 2805번 농작물 수확하기

by 컴공맨 2021. 1. 31.
 

SW Expert Academy

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

swexpertacademy.com


풀이

농작물에서 가운뎃줄은 무조건 구해야 하므로 가운뎃줄을 기준으로 농작물의 절반 지점까지는 구역을 점점 넓혀가고 절반 이후부터는 점점 줄여가도록 하여 해결하였습니다.


코드

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 tc = 1; tc <= T; ++tc) {
			int N = sc.nextInt(); // 농작의 크기 (<= 49)
			int[][] arr = new int[N][N];
			
			for (int i = 0; i < N; ++i) {
				String str = sc.next();
				// arr의 i번째 행에, 한 글자씩 숫자로 넣는다.
				for (int j = 0; j < N; ++j) {
					arr[i][j] = str.charAt(j) - '0';
				}
			}
			
			int answer = 0, area = 0, mid = (N / 2);
			for (int i = 0; i < N; ++i) {
				int st = mid - area;
				int en = mid + area;
				for (int j = st; j <= en; ++j) {
					answer += arr[i][j];
				}
				
				if (i >= mid) {
					area--;
				} else {
					area++;
				}
			}
			
			System.out.println("#" + tc + " " + answer);
		}
		
		sc.close();
	}

}

 

pyo7410/Algorithm

1일 1커밋을 목표로! Contribute to pyo7410/Algorithm development by creating an account on GitHub.

github.com