www.acmicpc.net/problem/7568

 

7568번: 덩치

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

www.acmicpc.net

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

int main(void)
{
  ios_base::sync_with_stdio(0);
  cin.tie(0);

  int n = 0;
  cin >> n;

  vector<pair<int,int>> v;
  // 일단 다 넣어준다
  for(int i = 0 ; i < n ; i++)
  {
    int x, y;
    cin >> x >> y;
    v.emplace_back(pair<int,int>(x,y));
  }
  // 각자 자신의 등수를 검사해서 출력
  for(int i = 0 ; i < n ; i++)
  {
    int rank = 1;
    // 자신보다 덩치가 큰 사람이 있으면 등수를 하나씩 올려줌
    for(int j = 0 ; j < n ; j++)
    {
      if((v[i].first < v[j].first) && (v[i].second < v[j].second))
      {
        rank++;
      }
    }

    cout << rank << " ";
  }
}

 

[Try]

1. pair 로 원소를 넣어준 다음에 키나 몸무게 둘 중 아무거로 정렬을 해준다. 정렬된 페어들의 second 값을 보면서 덩치를 결정한다.

     -> 너무 복잡해진다. 입력받을때마다 앞의 입력들과 쭉 비교해보고 벡터에는 등수만을 변경해주도록 하자

     -> 등수는 나중에 계산하고 일단 정보부터 벡터에 쭉 넣어준다. 등수는 각자가 모든 사람들을 검사하고 자신보다 덩치가 큰 사람이

          있으면 하나씩 올려주는 방식으로 푼다

 

[Point]

1. 또 완전탐색 문제

2. 쓸데없이 나만의 로직을 생각하려고 하지 말자. 일단 문제에 푸는 방식이 주어져 있으면 최대한 응용해서 풀자. 헛짓거리 하다가 시

     간만 날려먹은 것 같다.

3. 최대가 50명밖에 안되기 때문에 굳이 벡터 사용하지 않고 배열 선언해주고 푸는게 더 나았을 것 같다.

4. 거의 대부분 문제에서 주어진 방식대로 푸셨다. 나만 이상한 생각 하고 있었네...

 

[More]

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

[백준] 2108.cpp : 통계학  (0) 2020.05.15
[백준] 11651.cpp : 좌표 정렬하기 2  (0) 2020.05.14
[백준] 1436.cpp : 영화감독 숌  (0) 2020.05.13
[백준] 11866.cpp : 요세푸스 문제 0  (0) 2020.05.12
[백준] 10866.cpp : 덱  (0) 2020.05.12

+ Recent posts