[백준] 7568번 덩치 / C++
#문제
#풀이
#include <iostream>
#include <vector>
using namespace std;
int main()
{
ios::sync_with_stdio(false); cin.tie(NULL);
int N;
cin >> N;
vector<pair<pair<int, int>, int>> students;
for (int i = 0; i < N; ++i)
{
int weight, height;
cin >> weight >> height;
students.push_back(make_pair(make_pair(weight, height), 0));
}
for (int i = 0; i < N; ++i)
{
int k = 1;
for (int j = 0; j < N; ++j)
{
if (students[i].first.first < students[j].first.first && students[i].first.second < students[j].first.second)
{
k++;
}
}
students[i].second = k;
}
for (int i = 0; i < N; ++i)
{
cout << students[i].second << ' ';
}
return 0;
}
#정리
학생들의 몸무게와 키, 등수를 받을 수 있는 vector를 하나 만들고, 몸무게와 키는 입력받은 숫자로, 등수는 0으로 초기화하였다. 그리고 입력받은 몸무게와 키를 토대로 비교를 진행했다. 처음에는 비교 대상이 더 클 경우 등수를 높이는 방법을 생각하며 진행했는데, 몸무게와 키 모두 큰 경우를 제외하곤 등수의 변화가 없음을 인지하고 반대로 1부터 상대방이 클 경우 등수를 올리는 방식으로 변경하여 해결했다.
Enjoy Reading This Article?
Here are some more articles you might like to read next: