CS/Algorithm & Data Structure
[BOJ][C++] 백준 1181 단어 정렬
Yeji Heo
2022. 11. 22. 08:48
1. 중복제거 - find함수 이용하여 push_back할지 말지 미리 결정(요소가 이미 있으면 벡터에 추가하지 않음)
2. 정렬(길이순, 길이가 같으면 사전순) - compare함수를 만들어 sort함수 이용.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool compare(string p1, string p2) {
if (p1.length() == p2.length()) {
return p1 < p2;
}
return p1.length() < p2.length();
}
int main()
{
int N;
cin >> N;
vector<string> v;
for (int i = 0; i < N; i++) {
string str;
cin>>str;
if (find(v.begin(), v.end(), str) == v.end())
v.push_back(str);
}
sort(v.begin(), v.end(), compare);
for (int i = 0; i < v.size(); i++) {
cout << v[i] << "\n";
}
}