작성한 질문수
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
14. 그래프 최단거리(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
안녕하세요^^
for문을 1부터 n까지 n번만 돌리면 빈 리스트가 0번부터 n-1번까지 n개가 생깁니다. 빈 리스트는 무조건 0번부터 생성됩니다.
그래서 만약 graph.get(n)을 하면 indexOutOfBound 에러가 나는 것입니다.
for문을 0부터 n까지 돌려 빈 리스트 n+1개를 만들어야 0번부터 n번까지 생기기 때문입니다.