백준 문제풀이/실버5

백준 7568번 - 덩치

void_melody 2022. 2. 15. 20:58

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

 

7568번: 덩치

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

www.acmicpc.net

x > p 그리고 y > q 가 핵심이다.

우선 좌표가 x,y 이렇게 두 개이기에 pair을 활용했다.

그 다음 해당 사람 한 명 마다 나머지 사람 전부를 비교해야하므로 이중 반복문을 활용해주었다.

등 수 표현이 약간 처음에 이해가 잘 안되었는데,

문제 그대로 '자신보다 더 큰 덩치의 사람이 k명이면 그 사람의 등수는 k + 1' 이 된다를 활용하면 된다.

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

int main()
{
	std::cin.tie(NULL);
	std::ios::sync_with_stdio(false);
	
	int N;	// people number
	cin >> N;

	vector<pair<int, int>> v(N);
	for (int i = 0; i < N; i++)
		cin >> v[i].first >> v[i].second;

	std::vector<int> count(N);

	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < N; j++)
		{
			if (i == j)
				continue;
			if (v[i].first < v[j].first && v[i].second < v[j].second)
				count[i]++;
		}
	}
	
	for (int i = 0; i < N; i++)
		cout << count[i] + 1 << ' ';
	return 0;
}