inflearn logo
강의

Course

Instructor

Introduction to Java Algorithm Problem Solving: Coding Test Preparation

11. Choosing a Temporary Class President

2-11. 임시반장정하기 (Runtime Error)

62

dustjd423713

1 asked

0

이미지와 같이 Runtime Error 발생하여, 검토 요청드립니다.

스크린샷 2025-10-28 오후 5.15.20.png.webp
import java.util.*;

public class Main {

    private int solution (int i1, int[][] i2) {

        int r = 0;
        int rt = 0;

        for (int i = 0; i < i1; i++) {

            int t = 0;
            boolean[] s = new boolean[i1];
            for (int j = 0; j < 5; j++) {
                for (int k = 0; k < i1; k++) {
                    if (i2[i][j] == i2[k][j]) {
                        s[k] = true;
                    }
                }
            }

            for (boolean a: s) {
                if (a) {
                    t++;
                }
            }
            if (t > rt) {
                r = i;
                rt = t;
            }
        }
        return r + 1;
    }

    public static void main(String[] args){

        Scanner in = new Scanner(System.in);
        int input1 = in.nextInt();

        int [][] input2 = new int[input1][input1];
        for (int i = 0; i < input1; i++) {
            for (int j = 0; j < 5; j++) {
                input2[i][j] = in.nextInt();
            }
        }
        System.out.println(new Main().solution(input1, input2));
    }
}

java 코딩-테스트

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

런타임 에러가 발생하는 이유는 input2 배열의 크기가 잘못 설정된 것 같습니다. 현재 코드는 2차원 배열 input2의 크기를 [n][n]으로 잡고 있지만, 입력 데이터 포맷에 따라 각 행은 항상 5개의 입력만 받기 때문에 배열의 크기를 [n][5]로 설정해야 합니다. 이렇게 해야 각 학생의 학년도별 클래스 정보를 정확히 입력받을 수 있습니다.

이와 관련하여 검토할 수 있는 기존 질문들로 도움이 될 만한 유사한 질문을 몇 가지 소개해드리겠습니다:

  1. “runtime error” - 배열의 크기를 잘못 설정하여 런타임 에러가 발생하는 경우를 다룬 질문입니다.
  2. “질문드립니다.” - 이 문제에서 int[][] arr=newint[n+1][6];에 대해 설명하는 내용이 있으니 참고하시면 좋겠습니다.
  3. “런타임 에러” - 마찬가지로 인덱스 문제로 인해 런타임 에러가 발생할 때의 해결책을 제공합니다.

종합하여, 아래 코드를 참고해주세요:

import java.util.*;

public class Main {

    private int solution (int i1, int[][] i2) {

        int r = 0;
        int rt = 0;

        for (int i = 0; i < i1; i++) {

            int t = 0;
            boolean[] s = new boolean[i1];
            for (int j = 0; j < 5; j++) {
                for (int k = 0; k < i1; k++) {
                    if (i2[i][j] == i2[k][j]) {
                        s[k] = true;
                    }
                }
            }

            for (boolean a: s) {
                if (a) {
                    t++;
                }
            }
            if (t > rt) {
                r = i;
                rt = t;
            }
        }
        return r + 1;
    }

    public static void main(String[] args){

        Scanner in = new Scanner(System.in);
        int input1 = in.nextInt();

        // Corrected the array size
        int [][] input2 = new int[input1][5];
        for (int i = 0; i < input1; i++) {
            for (int j = 0; j < 5; j++) {
                input2[i][j] = in.nextInt();
            }
        }
        System.out.println(new Main().solution(input1, input2));
    }
}

이 코드에서는 input2 배열을 변환하여 문제를 해결하도록 구성하였습니다. 추가적인 질문이 있으시다면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.

0

19

1

갑자기 채점 사이트가 바뀌었어요

0

19

1

문제 리스트 페이지

0

22

1

채점 사이트 관련 질문드립니다

0

20

1

봉우리 문제 질문입니다

0

78

2

씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?

0

62

0

이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?

0

70

0

가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법

0

67

1

좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ

0

83

2

6-7 강의에서

0

47

1

6-6. 장난꾸러기 질문 있습니다.

0

43

1

강의 수강후 코딩테스트

0

106

1

answer 변수 사용 여부

0

42

1

2중 for문

1

83

2

혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?

0

68

1

이런 풀이는 어떨까요

0

42

1

자바 스트림 방식의 효율성 질문 드립니다.

0

55

1

알고리즘 자료 구조들..

0

60

1

StringBuilder vs BufferdWriter

0

47

1

원더랜드(프림)

0

47

1

이런 코드는 어떤가요?

0

59

1

bfs 풀이

0

55

1

병합정렬

0

55

1

26강 임시반장 정하기에서 질문이 있습니다

0

43

1