UpDown Dev Story
알고리즘 연습 - 격자판 최대합 본문
아래 강의를 보면서 연습하고 기록하고 있습니다
문제
소스코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int inputInt = sc.nextInt(); // 숫자 입력받음
int[][] inputArrXY = new int[inputInt][inputInt];
for (int i = 0; i < inputInt; i++) { // for loop 돌면서 숫자들 배열에 넣는다
for (int j = 0; j < inputInt; j++) {
inputArrXY[i][j] = sc.nextInt();
}
}
int result = 0;
for (int i = 0; i < inputArrXY.length; i++) {
int tmp = 0;
int tmp2 = 0;
for (int j = 0; j < inputArrXY.length; j++) {
tmp += inputArrXY[i][j]; // 가로 값들 누적
tmp2 += inputArrXY[j][i]; // 세로 값들 누적
}
result = Math.max(result, tmp); // 가로 값 누적한것과 result 비교하여 더 큰것 result에 할당
result = Math.max(result, tmp2); // 세로 값 누적한것과 result 비교하여 더 큰것 result에 할당
}
int tmp4 = 0;
int tmp5 = 0;
for (int i = 0; i < inputArrXY.length; i++) {
tmp4 += inputArrXY[i][i]; //왼쪽 위 모서리에서 오른쪽 아래 모서리까지 누적(대각선)
tmp5 += inputArrXY[i][inputArrXY.length - i - 1]; //오른쪽 오래 모서리에서 왼쪽 위 모서리까지 누적(대각선)
}
result = Math.max(result, tmp4); // 대각선 값 누적한것과 result 비교하여 더 큰것 result에 할당
result = Math.max(result, tmp5); // 대각선 값 누적한것과 result 비교하여 더 큰것 result에 할당
System.out.println(result); // 출력
}
}
'Algorithm' 카테고리의 다른 글
알고리즘 연습 - 두 배열 합치기 (0) | 2021.06.22 |
---|---|
알고리즘 연습 - 봉우리 (0) | 2021.06.03 |
알고리즘 연습 - 등수구하기 (0) | 2021.05.26 |
알고리즘 연습 - 점수계산 (0) | 2021.05.26 |
알고리즘 연습 - 뒤집은 소수 (0) | 2021.05.26 |
Comments