[c/c++] 백준 7568 (Silver 5)

은동·2023년 1월 16일
0

Baekjoon

목록 보기
5/49

🔨 문제

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

<요약>

n명의 사람의 몸무게와 키 정보를 입력받아 나열된 사람들의 덩치 등수를 매김

비교 대상보다 몸무게가 더 나가고, 키가 더 커야 덩치가 크다고 판단!


🔨 해결방법

  1. 두 가지 비교 대상을 한꺼번에 다루므로 vector와 pair함수 이용 (서로 연관된 2개의 데이터를 한 쌍으로 묶어서 다룰 때 편리)
vector <pair<자료형, 자료형>> v; 

입력받을 때에는 2가지 방식이 있음

1. v.push_back(pair<int, int>(weight, height));
2. v.push_back(make_pair(weight, height));
  1. 기준이 되는 사람이 비교대상보다 덩치가 작으면 증감연산자를 통해 숫자를 높임(등수를 낮춤), 이렇게 같은 등수 처리 가능

  2. 만약 기준이 되는 사람이 모든 비교대상보다 덩치가 크면 1등이므로 증감연산을 할 변수는 1로 초기화를 해줘야 함


🔨 코드

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

int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	
	int n;
	cin >> n;
	vector <pair<int, int>> v;

	int weight, height;
	for (int i = 0; i < n; i++) {
		cin >> weight >> height;
		v.push_back(make_pair(weight, height));	//make_pair || pair<int,int>
	}
	for (int i = 0; i < n; i++) {
		int cnt = 1;
		for (int j = 0; j < n; j++) {
			if (v[i].first < v[j].first && v[i].second < v[j].second)
				cnt++;
		}
		cout << cnt << ' ';
	}

	return 0;
}
profile
자자 선수입장~

0개의 댓글