inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

교안질문

182

박 경범

작성한 질문수 5

0

큰돌님 교안 공부중 이해가 안되는 부분들 정리하여 올립니다!

 

1.

#include<bits/stdc++.h>

using namespace std;

void f(vector<int> v[10]){

v[0][0] = 1000;

}

int main(){

vector<int> v[10];

v[0].push_back(100);

f(v);

for(int i : v[0]) cout << i << " ";

return 0;

}

// 1000

위 코드에서 vector<int> v[10] 꼴의 10개의 vector를 넘기는 함수가

왜 void f(vector<int>v[10] {

v[0][0] = 1000;

} 와 같이 작성되는 것인지 잘 이해가 되지 않습니다.

그리고 분명 v[0][0]에 1000의 값이 들어갔는데,

왜 v[0]의 값이 최종적으로 1000이 되는 것인지 잘 모르겠습니다. 100이 맞지 않나요?

 

2.

그리고 2차원 vector 코드에서

#include<bits/stdc++.h>

using namespace std;

void f(vector<vector<int>> &v){

vector<int> vv;

vv.push_back(10000);

v.push_back(vv);

}

int main(){

vector<vector<int>> v;

f(v);

for(int i : v[0]) cout << i << " ";

return 0;

}

vv[0]에 10000이라는 값이 들어가고,

이가 다시 push_back 함수에 의해 v[0]에 10000의 값으로 들어간다고 이해하면 되는걸까요?

(2차원 vector를 넘기기 위해 1차원 vector 두 개로 풀어냈다고 이해하였는데 제대로 이해한걸까요?)

 

3.

struct Point{

int y, x, z;

Point(int y, int x, int z) : y(y), x(x), z(z){}

Point(){y = -1; x = -1; z = -1; }

bool operator < (const Point & a) const{

if(x == a.x) {

if(y == a.y) return z < a.z;

return y > a.y;

}

return x < a.x;

}

};

위 코드에서 bool operator 대략적으로 이해는 하였는데, 정확히 a.x 가 의미하는게 무엇일까요?

또한 위 코드에서 x가 1순위 y가 2순위 z가 3순위로 정렬되는것은 알겠으나

사실상 어떤 상황이든 x가 1순위로 오름차순 정렬되지 않나요?

z, y가 1순위가 되어 오름차순 정렬이 되는 상황이 있나요?

그리고 return x < a.x; 코드를 지우고 실행시키면 에러가 나오는데 그 이유는 무엇인가요?

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

답변 1

0

큰돌

안녕하세요 경범님 ㅎㅎ

for(int i : v[0]) cout << i << " ";

이거는 v[0]의 요소들을 탐색한다는 의미죠? v[0][0].. v[0][1]..을 탐색한다는 뜻이기 때문입니다. 

 

이차원 벡터 v 생성

 - 벡터 안에 벡터가 있는 구조체입니다. 

 

일차원 벡터 vv에 

10000을 넣고 

이 벡터를 v에 넣는다. 라는 의미입니다. 

 

 

사실상 어떤 상황이든 x가 1순위로 오름차순 정렬되지 않나요?

예를 들어 a와 b가 벡터에 들어가있고 정렬을 한다고 해볼게요. 

A.x = 1 b.x = 1입니다. 

그러면 두개의 x가 같기 때문에 y, z의 정렬순서로 정렬되게 됩니다. 

 

그리고 return x < a.x; 코드를 지우고 실행시키면 에러가 나오는데 그 이유는 무엇인가요?

If x != a.x를 처리하는 로직이 없어서 에러가 발생되는 것이에요. 

1-E질문입니다!

0

533

2

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

0

835

2

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

0

396

1

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

0

469

1

문제 풀 때 방향성에 대해

0

809

1

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

0

530

1

17071번 메모리 초과

0

389

1

1-C질문입니다!

0

428

2

2-B BFS 시간초과질문

0

637

2

1-O 13번 라인

0

445

1

6-J 놀이공원 문제 질문

0

388

1

구현관련 질문

0

491

1

강의 교안

0

321

1

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

0

550

1

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

0

539

1

1-K

0

481

2

3-G번 질문있습니다.

1

480

3

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

0

502

1

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

0

601

2

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

0

441

1

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

0

349

1

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

1

452

2

4-A 출력 질문

0

307

1

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

0

264

1