01-25 03:45
Recent Posts
Recent Comments
관리 메뉴

miinsun

[Algorithm]μ•Œκ³ λ¦¬μ¦˜ μžλ°”_21 격자판 μ΅œλŒ€ν•© λ³Έλ¬Έ

Algorithm/Java

[Algorithm]μ•Œκ³ λ¦¬μ¦˜ μžλ°”_21 격자판 μ΅œλŒ€ν•©

miinsun 2022. 1. 3. 21:42

 

πŸ’¬ λ¬Έμ œ μ„€λͺ…

5*5 κ²©μžνŒμ— μ•„λž˜λ‘Έ 같이 μˆ«μžκ°€ μ ν˜€μžˆμŠ΅λ‹ˆλ‹€.
N*N의 격자판이 주어지면 각 ν–‰μ˜ ν•©, 각 μ—΄μ˜ ν•©, 두 λŒ€κ°μ„ μ˜ ν•© 쀑 κ°€ μž₯ 큰 합을 좜λ ₯ν•©λ‹ˆλ‹€.

 

πŸ”¨ μž…μΆœλ ₯ 예

μž…λ ₯ - 첫 쀄에 μžμ—°μˆ˜ N이 주어진닀.(2<=N<=50)

두 번째 쀄뢀터 N쀄에 걸쳐 각 쀄에 N개의 μžμ—°μˆ˜κ°€ 주어진닀.

각 μžμ—°μˆ˜λŠ” 100을 λ„˜μ§€ μ•ŠλŠ”λ‹€.

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

 

 

​

πŸ’» Solution.java

import java.util.Scanner;

public class Main {
	public int solution(int[][] arr) {
		int answer = Integer.MIN_VALUE;
		int sum1, sum2;
		
		for(int i = 0; i < arr.length; i++) {
			sum1 = sum2 = 0;
			for(int j = 0; j < arr.length; j++) {
				sum1 += arr[i][j];
				sum2 += arr[j][i];
			}
			answer = Math.max(answer, sum1);
			answer = Math.max(answer, sum2);
		}
		
		sum1 = sum2 = 0;
		for(int i = 0; i < arr.length; i++) {
			sum1 += arr[i][i];
			sum2 += arr[i][arr.length - i - 1];
		}
		answer = Math.max(answer, sum1);
		answer = Math.max(answer, sum2);
		
		return answer;
	}
	
	public static void main(String[] args){
		Main main  = new Main();
		Scanner sc =new Scanner(System.in);
		int n = sc.nextInt();
		int[][] arr = new int[n][n];
		
		for(int i = 0; i < n; i++) {
			for(int j = 0; j < n; j++) {
				arr[i][j] = sc.nextInt();
			}
		}
		
		System.out.println(main.solution(arr));
		
		sc.close();
		return ;
	}
}

 

 

 

Comments