인프런 커뮤니티 질문&답변

한유태님의 프로필 이미지
한유태

작성한 질문수

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

2-S

2-S vector선언 관련 질문 드립니다 :)

해결된 질문

작성

·

25

0

안녕하세요 선생님 🙂

그동안 풀었던 문제들을 마지막으로 점검하고 있는데요, 아무 생각없이 지나갔던 개념이 있더라구요.

 

  1. 그동안 풀었던 그리디 문제를 생각해보면, overflow 방지를 위해 아래처럼 vector의 크기를 미리 N으로 정해두었습니다.

cin >> N;
vector<pair<int, int>> vec(N);

이렇게 선언한다면, 제가 알기로 vec은 N만큼의 크기를 가지면서, 요소를 채워넣지 않으면 컨테이너 내부에 어떤 값도 존재하지 않는 것으로 알고 있습니다.

 

  1. 아래는 2-S 문제에서 선언된 vector입니다. 이 문제와 더불어, 다익스트라에서 가중치와 도착 지점을 저장해주는 adj vector는 같은 형태를 띄고 있습니다.

vector<int> vec[10004];

이렇게 선언한다면 vec은 배열처럼 10004개의 칸이 생기며, 전역에서 생성할 경우에는 모든 칸이 0으로 초기화되는 것으로 알고 있습니다. 이 형태를 1번으로 변경을 하면서 'DFS함수에 파라미터로 vec을 넣어주면 되겠다'라는 생각으로 접근을 했는데요, 시작하자마자 에러가 발생했습니다.

 

image.png

 

혹시 vector<int> vec[10004]과 같은 형태는 vector<vector<int>>와 같은 타입인걸까요?

이유가 무엇인지 알고싶습니다..!!

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 유태님 ㅎㅎ

vector<int> vec[10004]과 같은 형태는 vector<vector<int>>와 같은 타입인걸까요?

-> 같습니다.

이렇게 생각하시면 됩니다.

int a[]는 int 타입이 여러개 들어가있는 타입을 뜻하죠?

vector<int>[]는 vector<int> 라는 타입이 여러개 있는 타입이라는 것을 의미합니다.

 

DFS함수에 파라미터로 vec을 넣어주면 되겠다'라는 생각으로 접근을 했는데요, 시작하자마자 에러가 발생했습니다.

-> 이거는 그냥 N개짜리 1차원 배열입니다.

 

그동안 풀었던 문제들을 마지막으로 점검하고 있는데요, 아무 생각없이 지나갔던 개념이 있더라구요.

-> 네 좋습니다.ㅎㅎ 혹시 이번에 코테 보고 계신것 같은데 코테 남은 일정이나 몇개 남았는지 알수 있을까요?

 

감사합니다.

 

한유태님의 프로필 이미지
한유태
질문자

넥슨은 결과가 안좋구요, 넷마블 하나 남았습니다. 신입을 안뽑아서요.. 남은 시간 최선을 다해야 할 것 같습니다.

큰돌님의 프로필 이미지
큰돌
지식공유자

쩝.. 혹시 코테 보시다가 못푸시는 유형이 있으시면 메일로 보내주세요 ㅎㅎ 저도 그러한 유형은 강의내에 반영하도록 하겠습니다

화이팅입니다! ㅎㅎ

전 언제든 유태님 질문에 최선을 다해 답변드릴게요 ㅎㅎ

한유태님의 프로필 이미지
한유태

작성한 질문수

질문하기