문제풀이
1. sort를 사용해서 vector를 정렬.
2. unique를 사용해서 중복이 되는 요소를 맨 뒤로 넘긴다.
3. 맨 뒤로 넘어간 중복되는 요소들을 삭제하고 출력한다.
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
bool compare(string &s1, string &s2){
if(s1.size() == s2.size()){
return s1 < s2;
}
return s1.size() < s2.size();
}
int main(){
ios_base :: sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
vector <string> str;
for(int i = 0; i<N; i++){
string tmp;
cin >> tmp;
str.push_back(tmp);
}
sort(str.begin(),str.end(), compare);
str.erase(unique(str.begin(),str.end()),str.end());
for(int i = 0; i<str.size(); i++){
cout << str[i] << "\n";
}
}
'알고리즘' 카테고리의 다른 글
[C++] BOJ-1520 (0) | 2019.10.11 |
---|---|
[C++] BOJ-1238 (0) | 2019.10.11 |
[C++] BOJ-1012 (0) | 2019.10.11 |
[C++] BOJ-1012 (0) | 2019.10.11 |
[C++] BOJ-7576 (0) | 2019.09.09 |