https://www.acmicpc.net/problem/7568
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;
}
'백준 문제풀이 > 실버5' 카테고리의 다른 글
백준 1312번 - 소수 (0) | 2022.03.10 |
---|---|
백준 11651번 - 좌표 정렬하기 2 (0) | 2022.02.15 |
백준 1476번 - 날짜 계산 (0) | 2022.01.16 |
백준 10814번 - 나이순 정렬 (p.s. 배울 게 많군) (0) | 2021.12.17 |
백준 10989번 - 수 정렬하기 3 (using counting sort) (0) | 2021.12.16 |