728x90
반응형
오늘 배운 것
1. 문제 풀이
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int i = kb.nextInt();
int[][] arr = new int[i][i];
for (int j = 0; j < arr.length; j++) {
for (int k = 0; k < arr.length; k++) {
arr[j][k] = kb.nextInt();
}
}
solution(i,arr);
}
private static void solution(int i, int[][] arr) {
ArrayList<Integer> answer = new ArrayList<>();
for (int j = 0; j < arr.length; j++) {
int tmp = 0;
for (int k = 0; k < arr.length; k++) {
tmp += arr[j][k];
}
answer.add(tmp);
}
for (int j = 0; j < arr.length; j++) {
int tmp = 0;
for (int k = 0; k < arr.length; k++) {
tmp += arr[k][j];
}
answer.add(tmp);
}
int tmp = 0;
for (int j = 0; j < arr.length; j++) {
tmp += arr[j][j];
}
answer.add(tmp);
tmp = 0;
for (int j = 0; j < arr.length; j++) {
tmp += arr[j][arr.length-1-j];
}
answer.add(tmp);
int max_num = -1;
for (int j = 0; j < answer.size(); j++) {
if(max_num < answer.get(j)){
max_num = answer.get(j);
}
}
System.out.println(max_num);
}
}
. 강의에서는 더 깔끔하게 풀었다. 4단계 -> 2단계로 줄이셨음.
private static void solution2(int i, int[][] arr) {
int sum1,sum2;
int answer = -1;
for (int j = 0; j < arr.length; j++) {
sum1=sum2=0;
for (int k = 0; k < arr.length; k++) {
sum1+=arr[j][k];
sum2+=arr[k][j];
}
answer = Math.max(answer,sum1);
answer = Math.max(answer,sum2);
}
sum1=sum2=0;
for (int j = 0; j < arr.length; j++) {
sum1+=arr[j][j];
sum2+=arr[j][arr.length-1-j];
}
answer = Math.max(answer,sum1);
answer = Math.max(answer,sum2);
System.out.println(answer);
}
728x90
반응형
'알고리즘 > 문자열, 정렬' 카테고리의 다른 글
[알고리즘] 임시반장 정하기 with Java, 3차원 배열에 대한 생각 (0) | 2022.03.07 |
---|---|
[알고리즘] 봉우리 with Java (0) | 2022.03.06 |
[알고리즘] 등수구하기 with Java, 이중 for문 (0) | 2022.03.05 |
[알고리즘] 점수계산 with Java (0) | 2022.03.05 |
[알고리즘] 뒤집은 소수 with Java, 숫자뒤집기에 대한 생각 (0) | 2022.03.05 |