본문 바로가기
백준(C++)/정렬

[BOJ/C++]1181번_단어 정렬

by 코잼민 2024. 7. 10.

https://www.acmicpc.net/problem/1181

 

##문제 풀기 전 내가 알고 있었어야 할 개념: (작성중)

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#define SIZE 20000
 
using namespace std;
 
void init() {
 
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
}
 
bool compare(string a, string b) {
    if (a.size() == b.size()) {
        return a < b;
    }
    else {
        return a.size() < b.size();
    }
}
 
int main() {
 
    init();
 
    int N;
    string input;
    vector<string> V;
    vector<string>::iterator it;
    cin >> N;
 
    for (int i = 0; i < N; i++) {
        cin >> input;
        V.push_back(input);
    }
 
    sort(V.begin(), V.end(), compare);
    /* 나의 틀린 코드 :
    for (int i = 0; i < N; i++) {
        cout << V[i] << '\n';
        if (i != N - 1) {
            if (V[i] == V[i + 1]) {
                it = V.begin() + i + 1;
                it = V.erase(it);
                N--;
            }
        }
    }
    */
 
    //수정 후
    // 중복 원소 제거
    auto last = unique(V.begin(), V.end());
    V.erase(last, V.end());
    // 결과 출력
    for (const string& s : V) {
        cout << s << '\n';
    }
 
    return 0;
}
cs

'백준(C++) > 정렬' 카테고리의 다른 글

[BOJ/C++]18870번_좌표 압축  (0) 2024.07.11
[BOJ/C++]10814번_나이순 정렬  (0) 2024.07.11
[BOJ/C++]11651번_좌표 정렬하기2  (0) 2024.07.10
[BOJ/C++]10989번_수정렬하기3  (0) 2024.07.10
[BOJ/C++]25305번_커트라인  (0) 2024.07.10