연습 문제 5
import java.util.Scanner;
public class Solution2_5 {
// 크기 비교 : int re = Math.max(a, b);
// 리턴형 : int , 파라미터 : 2차원 배열
public int solution(int n, int arr[][]) {
int answer = 0;
int sum1, sum2 = 0;
// 각 행의 합
for(int i = 0; i < n; i++) {
sum1 = 0; sum2 = 0; // 한 번의 사이클이 끝나면 초기화해서 누적값을 없애야한다.
for(int j = 0; j < n; j++) {
sum1 += arr[i][j]; // 행의 합
sum2 += arr[j][i]; // 열의 합 -> i,j의 순서를 바꿔도 된다.
}
answer = Math.max(answer, sum1); // 기존의 answer값보다 sum1이 큰가?
answer = Math.max(answer, sum2); // 기존의 answer값보다 sum2가 큰가?
}
sum1 = sum2 = 0;
for(int i = 0; i < n; i++) {
sum1 += arr[i][i]; // 왼쪽에서 오른쪽 대각선, 같은 숫자를 넣어준다.
sum2 += arr[i][n-i-1]; // 오른쪽에서 왼쪽 대각선, 배열은 0부터 시작하므로, -1을 해준다.
}
answer = Math.max(answer, sum1); // 기존의 answer값보다 sum1이 큰가?
answer = Math.max(answer, sum2); // 기존의 answer값보다 sum2가 큰가?
return answer;
}
public static void main(String[] args) {
Solution2_5 s = new Solution2_5();
Scanner sc = new Scanner(System.in);
/*
5
10 13 10 12 15
12 39 30 23 11
11 25 50 53 15
19 27 29 37 27
19 13 30 13 19
*/
int n = sc.nextInt(); // 5
int arr[][] = new int[n][n];
for(int i = 0; i < n; i++) { // 1차원 배열의 크기만큼
for(int j = 0; j < n; j++) { // 2차원 배열의 크기만큼
arr[i][j] = sc.nextInt();
}
}
System.out.println(s.solution(n, arr));
}
}
- 결과값
5
10 13 10 12 15
12 39 30 23 11
11 25 50 53 15
19 27 29 37 27
19 13 30 13 19
155
Author And Source
이 문제에 관하여(연습 문제 5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sanggeun/연습-문제-5저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)