[백준] 📂. (18870번) 좌표 압축
🗒️ 18870번) 좌표 압축
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
cin >> N;
queue<int> nums;
vector<int> vec;
vec.reserve(N);
for (int i = 0; i < N; i++)
{
int n;
cin >> n;
vec.push_back(n);
nums.push(n);
}
sort(vec.begin(), vec.end()); // 1. 정렬
vec.erase(unique(vec.begin(), vec.end()), vec.end()); // 2. 중복제거
while (!nums.empty())
{
int count = lower_bound(vec.begin(), vec.end(), nums.front()) - vec.begin(); // 3. 인덱스 알아내기
cout << count << ' ';
nums.pop();
}
return 0;
}
좌표 압축 문제 풀이 순서
- 정렬(
sort
) → 중복제거(erase
,unique
) → 인덱스 알아내기(lower_bound()-begin()
)
댓글남기기