작성
·
301
1
안녕하세요 큰돌님.
인접행렬 강의 관련하여 질문드립니다.
[문제] 정점 20개인 그래프로 인접행렬 표현 시 메모리 최소로 쓸때, 배열 어떻게 만들어야 하나요?
질문1(강의 59초)
배열을 표현할때bool a[10][20]으로 할수도 있다라고 하셨는데, 이 표현이 20개의 노드중 10개의 노드로만 단방향 경로로 그래프를 만든다는 의미일까요?
질문2(강의 1분25초)
arr[20][20] 필요한데 이보다 큰값을 부여할수 있다라고 언급하셨는데 a[10000][10000], 노드 20개를 이용해서 a[10000][10000] 배열을 어떻게 만들수 있는지 궁금합니다.
답변 1
0
안녕하세요 수범님ㅎㅎ
[문제] 정점 20개인 그래프로 인접행렬 표현 시 메모리 최소로 쓸때, 배열 어떻게 만들어야 하나요?
>> a[20][20] 이렇게 만들면 됩니다.
질문1(강의 59초)
배열을 표현할때bool a[10][20]으로 할수도 있다라고 하셨는데, 이 표현이 20개의 노드중 10개의 노드로만 단방향 경로로 그래프를 만든다는 의미일까요?
>> 아닙니다. 저부분은 타자를 치는 중이구요 결국 bool[20][20]에서 bool [1000][1000]를 만드는 부분입니다. 즉 20개 노드라도 배열의 크기를 크게 할 수 있다는 부분입니다.
질문2(강의 1분25초)
arr[20][20] 필요한데 이보다 큰값을 부여할수 있다라고 언급하셨는데 a[10000][10000], 노드 20개를 이용해서 a[10000][10000] 배열을 어떻게 만들수 있는지 궁금합니다.
>> 음.. 자, 노드의 개수는 20개에요. 그러면 이 노드들을 표현하려면 a[20][20]이 필요한 것은 자명하죠? 근데 그냥 배열의 크기를 좀 더 크게할 수는 있다는 것이죠.
예를 들어서 저는 {1, 2, 3}을 배열로써 표현하고 싶어요.
int a[3]으로써 할수도 있겠죠?
그렇지만, int a[10]으로도 {1, 2, 3}은 표현이 가능하겠죠?
그런 의미입니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
안녕하세요 큰돌님.
결론적으로는 노드가 20개를 int a[1000]에도 넣을수 있고, a[10000]에도 넣을수 있다라는는 이야기시죠?
노드 20개의 자료를 해당 배열에 입력하고, 배열의 나머지 자리는 비어있는 상태이구요.