inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2주차 개념 #10. 너비우선탐색(BFS, Breadth First Search)

인접리스트 질문입니다.

277

starkshn

작성한 질문수 134

0

저는 이차원 배열 사용을 할 때 거의 항상 vector<vector<int>> vec 이런식으로 사용했는데

 

vector<int> adj[10]; 이런식으로 하면 vector라는 자료형이 10개가 있다는 말인데 위의 이차원 vector와 같은 거 같기는 한데

adj같은 경우는 vector라는 컨테이너 자체의 갯수는 못늘리고 vec은 계속해서 동적할 당이 가능한데 왜 adj는 vector<int> adj[10];이런식으로 사용하시는 지 궁금합니다!

C++ 코테 준비 같이 해요!

답변 1

0

큰돌

안녕하세요 ㅎㅎ

저거는 인접리스트를 구현할 때 쓰는 건데요.

예를 들어 1번 노드에 2, 3, 4가 연결되어있다.

3번 노드에 1, 3이 연결되어있다.

를 어떻게 표현할 수 있을까요?

2, 3, 4를 담는 1번짜리 배열 vector<int> v[1]

 

1, 3을 담는 3번짜리 배열 vector<int> v[3]

 

이렇게 할 수 있겠죠?

그렇기 때문에 vector<int> adj[10] 이런식의 배열을 쓰게 되는 것입니다.

또 질문 있으시면 언제든지 질문 부탁드립니다.

감사합니다.

강사 큰돌 올림.

0

starkshn

vector<vector<int> vec1; 으로 사용하는 것과 vector<int> adj[10]; 이런식으로 사용하는 것과 어떤 차이점이 있나요??

0

큰돌

vec1은 동적으로 2차원배열을 만든다는 의미고.

adj[10]은 2차원배열을 만들 때 10개를 이미 만들어놓는다는 의미입니다.

1-E질문입니다!

0

515

2

3-L 틀린 부분 피드백 부탁드립니다.

0

815

2

1-A문제 순열재귀함수 질문입니다.

0

380

1

1-A 일곱난쟁이문제입니다

0

454

1

문제 풀 때 방향성에 대해

0

796

1

맥에서 vs code로 실행 관련 질문입니다

0

520

1

17071번 메모리 초과

0

384

1

1-C질문입니다!

0

417

2

2-B BFS 시간초과질문

0

628

2

1-O 13번 라인

0

437

1

6-J 놀이공원 문제 질문

0

379

1

구현관련 질문

0

481

1

강의 교안

0

316

1

실력을 더 올리고나서 강의를 보는 것이 맞을까요?

0

544

1

안녕하세요! 재귀함수에 관해서 질문드립니다

0

534

1

1-K

0

471

2

3-G번 질문있습니다.

1

468

3

3-C 실행 시간 질문드립니다.

0

491

1

4-A 문제 풀이 질문있습니다.

0

589

2

비트마스킹 연산자 "1의 보수" 영문 표기법

0

433

1

격자탐색 문제에서 BFS 시간복잡도 질문드립니다.

0

332

1

3-O go 함수 질문 드립니다.

1

441

2

4-A 출력 질문

0

301

1

1주차 1-O 질문드립니다

0

253

1