백준

백준 7568 C++

solfa 2023. 11. 22. 17:54

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

 

7568번: 덩치

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

www.acmicpc.net

#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