inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

174만명의 커뮤니티!! 함께 토론해봐요.

BFS 함수 구현 도중 예외 발생 질문 드립니다.

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

public int[,] adj = new int[6, 6] { { 0, 1, 0, 1, 0, 0 }, { 1, 0, 1, 1, 0, 0 }, { 0, 1, 0, 0, 0, 0 }, { 1, 1, 0, 0, 1, 0 }, { 0, 0, 0, 1, 0, 1 }, { 0, 0, 0, 0, 1, 0 } }; 강의에서 처럼 위와 같이 그래프를 생성 하였고 public void BFS(int start) { bool[] found = new bool[6]; Queue<int> q = new Queue<int>(); found[start] = true; q.Enqueue(start); Console.WriteLine(start); while (q.Count > 0) { int now = q.Dequeue(); for (int next = 0; next < adj.GetLength(now) ; next++) { if (adj[now, next] == 0) continue; if (found[next]) continue; q.Enqueue(next); found[next] = true; Console.WriteLine(next); } } } 아래 BFS함수도 강의를 보고 작성 해보았는데 빨간색 글씨로 써놓은 adj.GetLength(now)부분에서 IndexOutOfRangeException 예외가 발생합니다. 선생님은 강의중 6으로 코딩을 하셨지만 조금 더 동적인 코딩을 해보고 싶어서 GetLength함수를 사용하였습니다. 그런데 디버깅을 해보면 adj.GetLength(0) 은 6으로 잘 나오지만 adj.GetLength(3)이 되면 예외가 발생하는데, 왜 예외가 발생하는지 궁금합니다. adj 배열의 4번째 차원은 원소가 6개이므로 6이 반환되어야 하는것 아닌가요?

  • GetLength
  • C#
상병 댓글 1 좋아요 0 조회수 222

인기 태그

인프런 TOP Writers

주간 인기글