#7568 덩치
문제 정리
(몸무게, 키)가 사람 수 대로 주어지는데 이를 (x, y)라 했을 때
자신보다 x, y가 모두 큰 사람이 몇명인지 구해서 출력하기.
생각해보기
우선 (x,y)는 typedef를 써서 받아보자… 백트래킹은 아니고
그냥 일일히 비교해도 될 것 같은디…
우선 본인빼고 어차피 다 비교해야 함.
a -> b c d e
b -> a c d e 이런 식으로..
코드 쓰기
나보다 덩치 큰 사람 수 = 등수가 아니고
나보다 덩치 큰 사람 수 + 1이 등수임
그리고 나랑 나 비교 건너뛸 때 break; 아니고 continue;임…
내 풀이
// BOJ-7568 덩치
#include <iostream>
#include <vector>
using namespace std;
// Person 구조체
typedef struct Person{
int weight;
int height;
}Person;
// 전역 변수
int num = 0;
vector<Person> v;
// 재귀 함수
void comparePerson(int idx, int num) {
Person me = v[idx];
int rank = 0;
// 본인 빼고 다 비교하기
for(int i = 0; i < num; i++){
if(i == idx) continue;
Person other = v[i];
if(other.height - me.height > 0 && other.weight - me.weight > 0){
rank += 1;
}
}
// 등수 출력
cout << rank + 1 << " ";
}
int main() {
cin >> num;
for(int i = 0; i < num; i++){
int w = 0, h = 0;
cin >> w >> h;
Person p = { w, h };
v.push_back(p);
}
for(int i = 0; i < num; i++){
comparePerson(i, num);
}
}