티스토리 뷰

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

 

18870번: 좌표 압축

수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에

www.acmicpc.net


#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int n;
    cin >> n;

    vector<int> v(n);
    for (int i = 0; i < n; i++)
        cin >> v[i];

    vector<int> sv(v); // 2 4 -10 4 -9
    sort(sv.begin(), sv.end());

    sv.erase(unique(sv.begin(), sv.end()), sv.end()); // -10 -9 2 4

    for (int i = 0; i < n; i++) {
        auto it = lower_bound(sv.begin(), sv.end(), v[i]);
        cout << it - sv.begin() << ' ';
    }
}

 

참고

https://donggoolosori.github.io/2020/09/26/boj-18870/

https://chanhuiseok.github.io/posts/algo-55/

https://leemoney93.tistory.com/66

 

Total
Today
Yesterday
최근에 올라온 글
«   2024/11   »
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