인프런 커뮤니티 질문&답변

황철원님의 프로필 이미지
황철원

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

9. 격자판 최대합

런타임 에러가 뜨는 이유가 궁금합니다!

작성

·

810

0

강의를 보기 전에 혼자 고민하고 작성했던 코드입니다. 출력은 잘 나오는데 채점 사이트에서 런타임 에러가 떴는데, 런타임 에러 어떤 상황에서 나오는지 궁금합니다!

import java.util.*;
public class Main {
    public int solution(int n, int[][] arr2) {
        int answer = 0;
        int sum = 0;

        // 각 행의 합
        for (int i = 0; i < n; i++) {
            sum = 0;
            for (int j = 0; j < n; j++) {
                sum += arr2[i][j];
            }
            answer = Math.max(sum, answer);
        }

        // 각 열의 합
        for (int i = 0; i < n; i++) {
            sum = 0;
            for (int j = 0; j < n; j++) {
                sum += arr2[j][i];
            }
            answer = Math.max(sum, answer);
        }

        // 두 대각선의 합
        // 00 -> 11 -> 22 -> 33 -> 44
        // 04 -> 13 -> 22 -> 31 -> 40
        sum = 0;
        for (int i = 0; i < n; i++) {
            sum += arr2[i][i];
        }
        answer = Math.max(sum, answer);

        sum = 0;
        for (int i = 0; i < n; i++) {
            sum += arr2[i][n-i-1];
        }
        answer = Math.max(sum, answer);

        return answer;
    }
    public static void main(String[] args) {
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        int n = kb.nextInt();
        int[][] arr = new int[5][5];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                arr[i][j] = kb.nextInt();
            }
        }

        System.out.println(T.solution(n, arr));
    }
}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

격자의 크기가 항상 5행 5열 크기로 들어오는 것이 아니라 n*n크리로 들어옵니다.

황철원님의 프로필 이미지
황철원

작성한 질문수

질문하기