문제 링크입니다: https://www.acmicpc.net/problem/7568
pair<pair<int, int>, int>형 벡터를 이용해 (키, 몸무게, 등수)를 저장하였는데 너무 복잡하다고 생각된다면 다른 방법으로 저장해도 무난하게 풀 수 있는 문제였습니다.
for문을 두번 돌려서 자신보다 키와 몸무게가 둘 다 큰 사람이 있을 경우 등수를 올리면 무난하게 AC를 받을 수 있는 문제였습니다!
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N;
vector<pair<pair<int, int>, int>> v; //키, 몸무게, 등수
void printOrder(void)
{
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
{
if (i == j)
continue;
//키와 몸무게가 모두 작아야 등수가 올라간다
else if (v[i].first.first < v[j].first.first && v[i].first.second < v[j].first.second)
v[i].second++;
}
for (int i = 0; i < N; i++)
cout << v[i].second << " ";
cout << endl;
}
int main(void)
{
cin >> N;
for (int i = 0; i < N; i++)
{
int x, y;
cin >> x >> y;
v.push_back(make_pair(make_pair(x, y), 1)); //초기 등수는 1등
}
printOrder();
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > BOJ' 카테고리의 다른 글
백준 2667번 단지번호붙이기 (3) | 2018.06.26 |
---|---|
백준 2217번 로프 (0) | 2018.06.26 |
백준 2668번 숫자고르기 (0) | 2018.06.25 |
백준 7576번 토마토 (10) | 2018.06.25 |
백준 2846번 오르막길 (0) | 2018.06.25 |