문제 링크
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWqU0zh6rssDFARG
C++ 풀이
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(string A, string B) {
if (A.length() < B.length())
return true;
else if (A.length() == B.length())
return A < B;
else if (A.length() > B.length())
return false;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int T, N, pos;
string name;
vector<string> names;
cin >> T;
for (int i = 1; i <= T; i++) {
cin >> N;
names.resize(N);
for (int j = 0; j < N; j++)
cin >> names[j];
sort(names.begin(), names.end(), cmp);
cout << "#" << i << "\n";
cout << names[0] << "\n";
for (int m = 1; m < names.size(); m++) {
if (names[m] != names[m - 1]) //중복 문자열은 제외하고 출력
cout << names[m] << "\n";
}
}
return 0;
}
중복 문자열은 제외하고 출력하는 방식으로 풀었다.
후에 unique 함수를 통해 중복 원소를 제거하는 방법이 있다는 걸 배웠다.
반응형
'알고리즘 · 코딩' 카테고리의 다른 글
[SWEA 1256] K번째 접미어 (0) | 2021.01.01 |
---|---|
[SWEA 1247] 최적 경로 (0) | 2020.12.30 |
[SWEA 3143] 가장 빠른 문자열 타이핑 (0) | 2020.12.26 |
[SWEA 9997] 미니멀리즘 시계 (0) | 2020.12.23 |
[백준 14502번] 연구소 (0) | 2020.10.18 |