• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

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

23.10.21 17:06 작성 23.10.21 17:09 수정 조회수 118

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번까지 생기기 때문입니다.