Language/C++
[C++] 2차원/이차원 vector 정렬
hilily
2022. 3. 9. 12:03
반응형
https://www.acmicpc.net/problem/1260 에서 문제를 풀면서 입력값의 뒷 숫자에 따라 출력값이 달라지므로, 입력한 값의 크기에 관계없이 연결되어있는 작은 노드가 출력되기 위해 뒷 숫자를 정렬한다.
예를들어
5
|
4
|
5
|
2
|
1
|
2
|
3
|
4
|
3
|
1
|
와 같이 연결되어 있다면, 5가 시작 노드일때 sort 없이 그냥 출력한다면, 처음 연결한 4가 출력되어 올바른 출력이 되지 않는다.
그래서 이를 dfs/bfs에 넘겨주기전 뒷 숫자들을 정렬한다.
5
|
2
|
5
|
4
|
1
|
2
|
3
|
1
|
3
|
4
|
이와 같이 정렬하면 올바른 출력이 가능하다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector <int> vec[5];
vec[5].push_back(4);
vec[5].push_back(2);
vec[1].push_back(2);
vec[3].push_back(4);
vec[3].push_back(1);
for (int i = 0; i < 5; i++) {
sort(vec[i].begin(), vec[i].end());
}
}
반응형