https://www.acmicpc.net/problem/7568
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(){
int N, num1, num2;
cin >> N;
int arr[N] = {0};
vector<pair<int, int>> v;
//입력
for(int i = 0 ; i<N ; i++){
cin >> num1 >> num2;
v.push_back(pair<int, int> (num1, num2));
}
for(int i = 0 ; i<N ; i++){
int cnt = 1; // 매번 초기화
for(int j = 0 ; j<N ; j++){
if(i != j && v[i].first < v[j].first && v[i].second < v[j].second)
//i=j 같을 때 비교 제외 + 다른 페어와 키 / 몸무게 둘 다 비교해서 덩치가 크다면 cnt++
cnt++;
}
cout << cnt << ' ';
}
}
총평
처음엔 무조건 sort를 하고 순위를 매기려고 했는데 (sort 함수도 쓰고 페어 sort 하는 법도 찾아봄)
문제를 잘 보니까 그냥 한 페어 (키, 몸무게)를 전체와 비교해서 작으면 cnt++로 숫자만 증가시켜주면 되는 문제였다!!!
즉, 키/몸무게 둘 다 고려해서 순서를 1 2 3 4 5 매기는 게 아닌,,, (뭐 나름 고려하긴 하는 거지만) 실버 5에 걸맞는 문제였다 ㅎ
난 모든 문제를 너무 어렵게 생각해서 오래걸린다 ㅠㅠ
빠른 생각 전환이 필요하다고 느꼈다
728x90
'백준' 카테고리의 다른 글
백준 9663 C++ (1) | 2023.11.23 |
---|---|
백준 2231 C++ (2) | 2023.11.22 |
백준 1018 C++ (0) | 2023.11.18 |
백준 9093 C++ (1) | 2023.11.16 |
백준 1874번 C++ (1) | 2023.11.15 |