농작물 수확하기

최민수·2023년 8월 1일
0

알고리즘

목록 보기
81/94
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
import java.util.stream.Collectors;

class Solution {

    public static void main(String[] args) throws IOException {
        // 입력
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        int testcase = Integer.parseInt(bufferedReader.readLine());

        for (int i = 1; i <= testcase; i++) {
            // 입력
            int N = Integer.parseInt(bufferedReader.readLine());
            List<List<Integer>> map = new ArrayList<>();
            for (int j = 0; j < N; j++) {
                String input = bufferedReader.readLine();
                List<Integer> mapLine = Arrays.stream(input.split(""))
                        .map(Integer::parseInt)
                        .collect(Collectors.toList());
                map.add(mapLine);
            }

            // 합 누적
            int sum = 0;
            int mid = N / 2;

            // 가운데 줄 기준, 위 아래 합산
            for (int item : map.get(mid)) {
                sum += item;
            }
            for (int k = 1; k <= mid; k++) {
                int up = mid + k;
                int down = mid - k;

                for (int j = k; j < N-k; j++) {
                    sum += map.get(up).get(j);
                    sum += map.get(down).get(j);
                }
            }
            System.out.println("#" + i + " " + sum);
        }
    }
}

D3

역시 자바로 풀어봤다.
로직 자체는 매우 간단했고 반복문의 index 문제만 신경써주면 바로 풀리는 문제였다.


출처: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GLXqKAWYDFAXB

profile
CS, 개발 공부기록 🌱

0개의 댓글