
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
vector<pair<int, int>> man;
vector<int> ranking;
int num;
void Solution(int toPick)
{
if (toPick == num) // 기저사례. num명의 등수를 다 계산했다면 등수를 출력한다
{
for (int i = 0; i < num; i++)
cout << ranking[i] << ' ';
return;
}
int cnt = 1;
for (int i = 0; i < num; i++)
{
if (i == toPick) continue; // 자기 자신과는 비교하지 않는다
if (man[toPick].first < man[i].first && man[toPick].second < man[i].second) cnt++;
// 자신보다 키와 몸무게가 더 큰 사람이 있다면 순위를 증가시킨다
}
ranking.push_back(cnt);
Solution(toPick + 1); // 등수 매긴 사람 수를 1 증가시키고 재귀호출
}
int main(void)
{
cin >> num;
for (int i = 0; i < num; i++)
{
int wi, hi;
cin >> wi >> hi;
man.push_back(pair<int, int>(wi, hi));
}
Solution(0);
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|

알고리즘 200일 프로젝트 - 6day
간단하게 등수를 저장할 ranking이라는 벡터를 정의하고 ranking에 등수를 담아 출력하였다.
'알고리즘 > BOJ' 카테고리의 다른 글
백준 14888번: 연산자 끼워넣기 (0) | 2020.04.12 |
---|---|
백준 6603번: 로또 (0) | 2020.04.12 |
백준 14502번: 연구소 (0) | 2020.04.11 |
백준 2231번: 분해합 (0) | 2020.04.11 |
백준 14501번: 퇴사 (0) | 2020.04.10 |