풀이 :
1. 문자열들을 입력받으면서 벡터에 저장
2. 벡터에 저장된 문자열들을 사용자 함수를 이용해서 정렬
3. 정렬된 벡터에서 중복된 문자열들을 제거
4. 최종적으로 계산된 벡터를 순서대로 출력
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
bool word_compare(const string& s1, const string& s2) {
if (s1.length() < s2.length())
return true;
else if (s1.length() == s2.length())
return s1.compare(s2) < 0;
else
return false;
}
int main()
{
int n;
cin >> n;
vector<string> v_str;
string str;
for (int i = 0; i < n; i++) {
cin >> str;
v_str.push_back(str);
}
sort(v_str.begin(), v_str.end(), word_compare);
v_str.erase(unique(v_str.begin(), v_str.end()), v_str.end());
for (const auto& v : v_str) {
cout << v << "\n";
}
}
'개발 > 알고리즘 풀이...' 카테고리의 다른 글
[백준] 4949번 문제 풀이 (0) | 2021.03.14 |
---|---|
[백준] 1764번 문제 풀이 (0) | 2021.03.14 |
[백준] 4796번 문제 풀이 (0) | 2021.03.12 |
[백준] 1946번 문제 (0) | 2021.03.10 |
[백준] 2217번 문제 (0) | 2021.03.09 |