처음에 덩치를 비교하는 부분에서 해맸지만, 문제를 잘 읽어보면
덩치를 비교해 순위를 매기는 것을 알 수 있다.
따라서 특정 한 사람을 나를 제외한 모든 사람과 비교하기 위해 이중포문을 사용하였다.
또한, 덩치를 비교하기 위해 키와 몸무게를 모두 고려해야 하므로 키와 몸무게 두가지를 담을 수 있는 자료형인 pair을 사용하여 비교하였다.
#include <vector>
#include <iostream>
bool comp(pair<int, int> p, pair<int, int> p2) { // 덩치 비교 함수
if (p.first < p2.first && p.second < p2.second) // 키와 몸무게 모두 작을 때(덩치가 작을 때) true 반환
return true;
else
return false;
}
int main() {
int n, x, y;
vector<pair<int, int>> pv; // 키와 몸무게
pair<int, int> p;
vector<int> rank; // 순위
cin >> n;
for (int i = 0; i < n; i++) {
cin >> x;
cin >> y;
p = make_pair(x, y); // 키와 몸무게를 입력받아 pair에 저장
pv.push_back(p);
}
for (int i = 0; i < n; i++) {
int r = 0;
for (int j = 0; j < n; j++)
if (comp(pv[i], pv[j]) == true) r++; // 덩치가 작으면 등수 +1
rank.push_back(r);
}
for (int i = 0; i < rank.size(); i++)
cout << rank[i] +1 << " ";
}