N*N 격자판이 주어지면 각 해으이 합, 각 열의 합, 두 대각선의 합 중 가장 큰 합을 출력하세요.
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
Math.max()
메소드를 사용해 각 행의 합, 각 열의 합을 구한다.function solution(arr){
let answer;
let len = arr.length;
let sum1 = 0; // 행의 합
let sum2 = 0; // 열의 합
for (let i = 0; i < len; i++) {
sum1 = 0;
sum2 = 0;
for (let j = 0; j < len; j++) {
sum1 += arr[i][j];
sum2 += arr[j][i];
}
answer = Math.max(sum1, sum2) // 최대값을 구하는 메소드
}
// 변수의 스코프 범위를 고려해서, 대각선의 합을 구해주기 위해 다시 선언해준다.
sum1 = 0;
sum2 = 0;
for (let i = 0; i < len; i++) {
// 대각선 구하기
sum1 += arr[i][i]; // 똑같은 인덱스의 행과 열
sum2 += arr[i][len-i-1]; // sum1과 대칭인 값;
}
answer = Math.max(sum1, sum2);
return answer;
}
let arr = [[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]];
console.log(solution(arr));