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 |