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

[SWEA / 농작물 수확하기 / JAVA]

by KDW999 2023. 5. 17.

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV7GLXqKAWYDFAXB&categoryId=AV7GLXqKAWYDFAXB&categoryType=CODE&problemTitle=&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=1 

 

SW Expert Academy

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

swexpertacademy.com

 

문제 접근

파란 부분을 상단, 중간, 아래로 나누어서 계산

배열의 인덱스는 0부터 시작이라 N/2를 사용하면 인덱스의 중간 사용 가능

 

하단 부분 범위 정하는 게 헷갈렸는데 상단과는 반대로 i는 작아져야하고, 작아지는 i를 토대로 N-i-1로 하단의 인덱스를 지정

import java.util.*;
import java.io.*;

public class Solution {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int T = Integer.parseInt(br.readLine());
		
		for(int t=1; t<=T; t++) {
			int N = Integer.parseInt(br.readLine());
			
			int[][] map = new int[N][N];
			
			for(int i=0; i<N; i++) {
				String str = br.readLine();
				for(int j=0; j<N; j++) {
					map[i][j] = str.charAt(j)-48;
				}
			}
			
			int sum=0;
			
            // 상단
			for(int i=0; i<N/2; i++) {
				for(int j=N/2-i; j<=N/2+i; j++) {
					sum += map[i][j];
				}
			}
			
            // 중간
			for(int i=N/2; i == N/2; i++) {
				for(int j=0; j<N; j++) {
					sum += map[i][j];
				}
			}
			
            // 하단
			for(int i= (N/2)-1; i>=0; i--) {
				for(int j= N/2-i; j<= N/2+i; j++) {
					sum += map[N-i-1][j];
				}
			}
			
			System.out.println("#"+t+" " + sum);
		}
	}
}

 

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

[SWEA / 회문1 / JAVA]  (0) 2023.05.18
[SWEA / 원재의 메모리 복구하기 / JAVA]  (0) 2023.05.17
[SWEA / N-Queen / JAVA]  (0) 2023.05.16
[SWEA / 파리 퇴치 / JAVA]  (0) 2023.05.15
[SWEA / Flattern / JAVA]  (0) 2023.05.14

댓글