문제
https://www.acmicpc.net/problem/1181
소스코드
#include <algorithm>
#include <string>
#include <iostream>
#include <vector>
using namespace std;
bool compare(string x, string y) {
if (x.length() == y.length()) {
return x < y;
}
else {
return x.length() < y.length();
}
}
int main(void) {
int N; cin >> N;
vector<string> v(N);
for (int i = 0; i < N; i++) {
cin >> v[i];
}
sort(v.begin(), v.end(), compare);
cout << v[0] << endl;
for (int i = 1; i < N; i++) {
if (v[i] != v[i - 1]) {
cout << v[i] << endl;
}
}
}
설명
1. string을 저장하는 벡터에 입력 받은 값들을 저장한다.
2. sort로 벡터를 정렬한다. compare 함수에서 두 문자열의 길이가 같은 경우와 다른 경우를 각각 처리해준다.
3. 중복을 제거 하고 출력하기 위해 정렬 후 이전 원소와 값이 다른 값만 출력을 한다.
'개인 공부 > 코딩테스트' 카테고리의 다른 글
[C++] 백준 1874번 스택 수열 :: seoftware (0) | 2020.03.18 |
---|---|
[C++] 백준 2231번 분해합 :: seoftware (0) | 2020.03.14 |
[C++] 백준 11053번 가장 긴 증가하는 부분 수열 :: seoftware (0) | 2020.03.13 |
[C++] 백준 10250번 ACM 호텔 :: seoftware (0) | 2020.03.13 |
[C++] 백준 10814번 나이순 정렬 :: seoftware (0) | 2020.03.13 |
댓글