PS

백준 7568. 덩치

tose33 2021. 4. 30. 20:54

www.acmicpc.net/problem/7568

 

7568번: 덩치

우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩

www.acmicpc.net

사람수 N이 최대 50이므로 brute force로.

 

값들을 컨테이너에 넣어놓고 한명을 기준으로 몸무게와 키를 비교해서 둘다 나보다 큰 사람이 있으면 bigger값을 늘려준다.

최종적으로는 나보다 덩치가 큰 사람이 bigger명 있으므로 나는 bigger+1번째이다.

 

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n;
    vector<pair<int,int>> v;
    vector<int> ans;

    cin >> n;
    for(int i = 0; i < n; i++) {
        int x,y;
        cin >> x >> y;
        v.push_back({x,y});
    }

    for(int i = 0; i < v.size(); i++) {
        int bigger = 0; // i보다 덩치가 큰 사람수
        for(int j = 0; j < v.size(); j++) {
            if(j == i) continue; // 나자신과는 비교할 필요없다
            // 비교되는 j가 현재기준인 i보다 덩치가 크다면
            if(v[i].first < v[j].first && v[i].second < v[j].second) {
                bigger++; // 덩치큰 사람수 증가
            }
        }
        // 나보다 덩치큰 사람이 bigger명 있으므로 나는 bigger+1 번째
        ans.push_back(bigger+1);
    }

    for(int x : ans) cout << x << ' ';

}