728x90
정렬 문제입니다.
sort함수로 글자가 짧은것 순으로 정렬하고
글자 길이가 같으면 글자순으로 정렬합니다.
그리고 erase, unique를 써서 중복을 제거한 후
차례대로 출력했습니다.
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <string>
using namespace std;
bool compare(string a, string b) {
if (a.size() == b.size()) {
return a < b;
}
else {
return a.size() < b.size();
}
}
int main(int argc, char *argv[])
{
int n;
char s[100];
vector<string> v;
scanf("%d", &n);
for (int i = 0; i < n; ++i) {
scanf("%s", s);
v.push_back(s);
}
sort(v.begin(), v.end(), compare);
v.erase(unique(v.begin(), v.end()), v.end());
for (int i = 0; i < v.size(); ++i) {
cout << v[i] << endl;
}
return 0;
}
'알고리즘' 카테고리의 다른 글
[C++] 백준 2217번 로프 (0) | 2019.08.31 |
---|---|
[C++] 백준 10814번 나이순 정렬 (1) | 2019.08.31 |
[C++] 백준 11651번 좌표 정렬하기 2 (0) | 2019.08.30 |
[C++] 백준 11650번 좌표 정렬하기 (0) | 2019.08.30 |
[C++] 백준 2108번 통계학 (0) | 2019.08.30 |