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

onil4115님의 프로필 이미지
onil4115

작성한 질문수

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

1. 큰 수 출력하기

코딩 에러 질문합니다ㅠ

작성

·

274

0

안녕하세요 선생님 

임시반장 구하기 문제에서 몇번을 확인해봐도 오류를 발견하지 못했는데 에러가 해결이 안되서 조언 구합니다 ㅠㅠ

 

import java.util.*; //임시반장 구하기

class  Main{

public int solution(int n, int[][] arr){

int answer=0,max=Integer.MIN_VALUE;

for(int i=1;i<=n;i++){

int cnt=0;

for(int j=1;i<=n;j++){

for(int k=1;i<=5;k++){

if(arr[i][k]==arr[j][k]){

cnt++;

break;

}

}

}

if(cnt>max){

max=cnt;

answer=i;

}

}

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[n+1][6];

for(int i=1;i<=n;i++){

for(int j=1;j<=5; j++){

arr[i][j]=kb.nextInt();

}

}

System.out.print(T.solution(n,arr));

}

 }

 

여기까지가 소스이구 실행했을 때 다음과 같은 메세지가 떴습니다.

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 6 out of bounds for length 6 at Main.solution(Main.java:10) at Main.main(Main.java:39)

왜 계속 에러가 뜨는것일까요?ㅠ 조언 부탁드리겠습니다

답변 1

1

안녕하세요.

제가볼때 solution 함수에서 2중, 3중 포문돌릴때 중간 조건을 j, k를 넣어야하는데 

둘다 i 를 넣으신거같네요..

 

i,j 같은거는 비슷하게 보이는 경향이 있어 차라리 i, k, m ,p 등을 쓰세용~

 

ArrayIndexOutOfBoundsException 해당 에러는 참조하려는 인덱스가 선언하신 배열을 넘어서거나 없는 배열의 인덱스를 참조하려할때 나옵니다.

onil4115님의 프로필 이미지
onil4115

작성한 질문수

질문하기