Baekjoon
[#1181] 단어 정렬
강람이
2020. 3. 9. 19:04
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include <iostream>
#include <vector>
#include <algorithm>
#include <stdio.h>
#include <string>
using namespace std;
int main() {
int n;
cin >> n;
vector<pair<int, string>> vec(n);
for (int i = 0; i < n; i++) {
string str;
cin >> str;
}
sort(vec.begin(), vec.end());
for (int i = 0; i < vec.size(); i++) {
cout << vec[i].second << "\n";
//printf("%s\n", vec[i].second);
}
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
vec.erase(iter) : 인자가 한개면 iter위치의 값 삭제
vec.erase(start, end) : 인자가 두개면 [strat, end) 범위의 값 삭제
unique(start, end): [start, end) 중복 되는 값을 하나 남기고 뒤로 보냄. 뒤로 보낸거의 시작 iter 반납
unique 쓰기 전에 반드시 정렬되어 있어야함
예를 들어 {1, 1, 2, 3, 5, 5} 에 unique를 하면 {1, 2, 3, 5, 1, 5} 가 되고 두번째 1의 주소 반환
따라서 vector에서 중복 제거할때는
sort(vec.begin(), vec.end());
vec.erase(unique(vec.begin(), vec.end()), vec.end());