250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(백준 c++)18870 좌표 압축 본문
728x90
반응형
문제
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.
Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다.
X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.
입력
첫째 줄에 N이 주어진다.
둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다.
출력
첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다.
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
int main(void){
int N, index = 1;
vector<int> v, tmp;
map<int, int> m;
cin >> N;
for(int i = 0; i < N; i++){
int n;
cin >> n;
v.push_back(n);
}
tmp = v;
sort(tmp.begin(), tmp.end());
for(int i = 0; i < v.size(); i++){
if(!m[tmp[i]]){
m[tmp[i]] = index++;
}
}
for(int i = 0; i < N; i++){
cout << m[v[i]] - 1 << " " ;
}
return 0;
}
728x90
반응형
'백준 알고리즘' 카테고리의 다른 글
(백준 c++)18258 큐 2 (0) | 2021.04.12 |
---|---|
(백준 c++)1874 스택 수열 (0) | 2021.04.12 |
(백준 c++)17140 이차원 배열과 연산 (0) | 2021.04.09 |
(백준 c++)17144 미세먼지 안녕! (0) | 2021.04.07 |
(백준 c++)16235 나무 재테크 (0) | 2021.04.06 |