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());
	}

}
반응형