백준 문제풀이

백준 10816번 - C++

diligent_gideok 2022. 5. 18. 20:28
#include <bits/stdc++.h>
using namespace std;

int n;
int x[1000005];
vector<int> tmp, uni;

int main(void) {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> x[i];
		tmp.push_back(x[i]);
	}
	sort(tmp.begin(), tmp.end());
	
	// 직접 중복 제거
	for (int i = 0; i < n; i++) {
		if (i == 0 || tmp[i - 1] != tmp[i])
			uni.push_back(tmp[i]);
	}
	// STL unique 함수를 사용하여 중복 제거
	//uni.erase(unique(uni.begin(), uni.end()), uni.end());


	for (int i = 0; i < n; i++) {
		cout << lower_bound(uni.begin(), uni.end(), x[i]) - uni.begin() << ' ';
	}


}

'백준 문제풀이' 카테고리의 다른 글

백준 1654번 - C++  (0) 2022.05.18
백준 2295번 - C++  (0) 2022.05.18
백준 1920번 - C++  (0) 2022.05.18
백준 1476번 - C++  (0) 2022.05.18
백준 9613번 - C++  (0) 2022.05.18