끄적끄적 코딩
article thumbnail
Published 2019. 9. 16. 10:47
[C++] 백준 10825번 국영수 알고리즘

정렬문제입니다.

compare함수를 정의해주어서 정렬에 조건을 주었습니다.

 

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

vector<pair<string, vector<int> > > v;

int compare(pair<string, vector<int> > v1, pair<string, vector<int> > v2)
{
	if (v1.second[0] == v2.second[0]) {
		if (v1.second[1] == v2.second[1]) {
			if (v1.second[2] == v2.second[2]) {
				return v1.first < v2.first;
			}
			return v1.second[2] > v2.second[2];
		}
		return v1.second[1] < v2.second[1];
	}
	return v1.second[0] > v2.second[0];
}

int main(int argc, char* argv[])
{
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);

	int n;
	int	kor;
	int eng;
	int math;
	string s;
		
	cin >> n;

	for (int i = 0; i < n; ++i) {
		vector<int> score;
		cin >> s;
		cin >> kor;
		cin >> eng;
		cin >> math;

		score.push_back(kor);
		score.push_back(eng);
		score.push_back(math);
		v.push_back(make_pair(s, score));
	}

	sort(v.begin(), v.end(), compare);

	for (int i = 0; i < v.size(); ++i) {
		cout << v[i].first << "\n";
	}

	return 0;
}

'알고리즘' 카테고리의 다른 글

[C++] 백준 11652번 카드  (0) 2019.09.16
[C++] 백준 3047번 ABC  (0) 2019.09.16
[C++] 백준 11004번 K번째 수  (0) 2019.09.15
[C++] 백준 3055번 탈출  (0) 2019.09.13
[C++] 백준 2589번 보물섬  (0) 2019.09.13

검색 태그