해결된 질문
작성
·
25
0
안녕하세요 선생님 🙂
그동안 풀었던 문제들을 마지막으로 점검하고 있는데요, 아무 생각없이 지나갔던 개념이 있더라구요.
그동안 풀었던 그리디 문제를 생각해보면, overflow 방지를 위해 아래처럼 vector의 크기를 미리 N으로 정해두었습니다.
cin >> N;
vector<pair<int, int>> vec(N);
이렇게 선언한다면, 제가 알기로 vec은 N만큼의 크기를 가지면서, 요소를 채워넣지 않으면 컨테이너 내부에 어떤 값도 존재하지 않는 것으로 알고 있습니다.
아래는 2-S 문제에서 선언된 vector입니다. 이 문제와 더불어, 다익스트라에서 가중치와 도착 지점을 저장해주는 adj vector는 같은 형태를 띄고 있습니다.
vector<int> vec[10004];
이렇게 선언한다면 vec은 배열처럼 10004개의 칸이 생기며, 전역에서 생성할 경우에는 모든 칸이 0으로 초기화되는 것으로 알고 있습니다. 이 형태를 1번으로 변경을 하면서 'DFS함수에 파라미터로 vec을 넣어주면 되겠다'라는 생각으로 접근을 했는데요, 시작하자마자 에러가 발생했습니다.
혹시 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차원 배열입니다.
그동안 풀었던 문제들을 마지막으로 점검하고 있는데요, 아무 생각없이 지나갔던 개념이 있더라구요.
-> 네 좋습니다.ㅎㅎ 혹시 이번에 코테 보고 계신것 같은데 코테 남은 일정이나 몇개 남았는지 알수 있을까요?
감사합니다.
쩝.. 혹시 코테 보시다가 못푸시는 유형이 있으시면 메일로 보내주세요 ㅎㅎ 저도 그러한 유형은 강의내에 반영하도록 하겠습니다
화이팅입니다! ㅎㅎ
전 언제든 유태님 질문에 최선을 다해 답변드릴게요 ㅎㅎ
넥슨은 결과가 안좋구요, 넷마블 하나 남았습니다. 신입을 안뽑아서요.. 남은 시간 최선을 다해야 할 것 같습니다.