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

sami3013님의 프로필 이미지
sami3013

작성한 질문수

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

14. 그래프 최단거리(BFS)

그래프 최단거리(BFS 질문)

작성

·

206

·

수정됨

0

for(int i=0; i<=n; i++){ //0번은 사용하지 않아 1로 했더니 에러가 나고 0으로 바뀌니 에러가 나지 않았다. 왜?
      graph.add(new ArrayList<Integer>());
    }

 

질문. 0번은 사용하지 않아

1로 했더니 에러가 나고

0으로 바뀌니 에러가 나지 않았습니다. 왜 그런걸까요?

 

에러 종류

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 6 out of bounds for length 6

 

답변 1

0

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

안녕하세요^^

for문을 1부터 n까지 n번만 돌리면 빈 리스트가 0번부터 n-1번까지 n개가 생깁니다. 빈 리스트는 무조건 0번부터 생성됩니다.

그래서 만약 graph.get(n)을 하면 indexOutOfBound 에러가 나는 것입니다.

for문을 0부터 n까지 돌려 빈 리스트 n+1개를 만들어야 0번부터 n번까지 생기기 때문입니다.

 

sami3013님의 프로필 이미지
sami3013

작성한 질문수

질문하기