Developing Myself Everyday
 

SW Expert Academy

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

swexpertacademy.com

 

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


 

 

 

 

1. 나의 풀이

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

<code />
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

@배준형

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