Developing Myself Everyday
 

SW Expert Academy

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

swexpertacademy.com

 

문제와 관련된 내용은 위의 링크에서 확인할 수 있습니다.


 

 

 

 

나의 풀이

이 문제는 특별할 것이 따로 없는, 단순한 계산문제입니다. 열의 최대값, 행의 최대값, 대각선의 값을 차례로 구한 다음에 이 값들의 최대값을 구하면 됩니다.

import java.util.Scanner;
import java.util.stream.IntStream;

class Solution {

    public static void main(String args[]) throws Exception {
        Scanner sc = new Scanner(System.in);

        for (int test_case = 1; test_case <= 10; test_case++) {
            int test_case_num = sc.nextInt();

            int[][] array = new int[100][100];

            for (int i = 0; i < 100; i++) {
                for (int j = 0; j < 100; j++) {
                    array[i][j] = sc.nextInt();
                }
            }

            int max = Math.max(Math.max(maxRow(array), maxColumn(array)), maxDiagonal(array));


            System.out.println("#" + test_case_num + " " + max);
        }

        sc.close();
    }

    static int maxRow(int[][] array) {
        int max = 0;
        for (int[] row : array) {
            int rowSum = IntStream.of(row).sum();
            max = Math.max(max, rowSum);
        }

        return max;
    }

    static int maxColumn(int[][] array) {
        int max = 0;
        for (int i = 0; i < 100; i++) {
            int columnSum = 0;
            for (int j = 0; j < 100; j++) {
                columnSum += array[j][i];
            }
            max = Math.max(max, columnSum);
        }

        return max;
    }

    static int maxDiagonal(int[][] array) {
        int diagonalSumA = 0;
        int diagonalSumB = 0;
        for (int i = 0; i < 100; i++) {
            diagonalSumA += array[i][i];
            diagonalSumB += array[i][99 - i];
        }

        return Math.max(diagonalSumA, diagonalSumB);
    }
}
profile

Developing Myself Everyday

@배준형

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!