습관처럼

백준 7568 - 덩치 본문

Algorithms/BOJ

백준 7568 - 덩치

dev.wookii 2020. 3. 24. 09:31

https://www.acmicpc.net/problem/7568

 

7568번: 덩치

우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x,y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x,y), (p,q)라고 할 때 x>p 그리고 y>q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56,177), (45,165) 라고 한다면 A의 덩치가 B보다 큰

www.acmicpc.net

문제 설명


어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x,y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x,y), (p,q)라고 할 때 x>p 그리고 y>q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 각 사람의 덩치 등수를 계산하여 출력해야 한다.

 

 

접근 방식


몸무게 또는 키 순으로 정렬을 한 후 하나의 기준을 바탕으로 덩치의 순위를 판단하면 손쉽게 가능하다.

 

 

코드


#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;
int n;
vector<pair<int,int> >member;
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        int weight,height;
        cin>>weight>>height;
        member.push_back(make_pair(weight,height));
    }
    for(int i=0;i<member.size();i++){
        int h =member[i].second;
        int w =member[i].first;
        int cnt=0;
        for(int j=0;j<member.size();j++){
            if(j==i)continue;
            if(h<member[j].second && w<member[j].first) cnt++;
        }
        cout<<cnt+1<<" ";
    }
    return 0;
}

funny algorithms~

'Algorithms > BOJ' 카테고리의 다른 글

백준 1966 - 프린트 큐  (0) 2020.03.28
백준 14888 - 연산자 끼워넣기  (0) 2020.03.24
백준 1978 - 소수 찾기  (0) 2020.03.19
백준 2839 - 설탕 배달  (0) 2020.03.18
백준 1541 - 잃어버린 괄호  (0) 2020.03.17