본문 바로가기

Algorithm/Sorting

Baekjoon 10825 국영수

Link https://www.acmicpc.net/problem/10825

소스결과 6688 KB / 140 ms

출처 Baekjoon

언어 C++ 17

분류 정렬

 

설명

도현이네 반 학생을 주어진 조건대로 정렬하자

 

STL 연습겸, 정렬 알고리즘을 연습하기 좋은문제

구조체 배열 / vector sort 사용하기 , Quick, Merge Sort 연습용도로는 괜찮은 문제다.

알고리즘이라 할만한 내용도 크게 없다.

 

소스코드

 

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>

using namespace std;

struct Student
{
	string name;
	int kor;
	int eng;
	int mat;

	bool operator<(const Student& s) {
		if (kor < s.kor)
			return false;
		else if (kor == s.kor)
		{
			if (eng > s.eng)
				return false;
			else if (eng == s.eng)
			{
				if (mat < s.mat)
					return false;
				else if (mat == s.mat)
				{
					if (name > s.name)
						return false;
				}
			}
		}
		return true;
	}
};

int main()
{
	int n;

	cin >> n;

	vector<Student> student(n);

	for (int i = 0; i < n; i++)
		cin >> student[i].name >> student[i].kor >> student[i].eng >> student[i].mat;

	sort(student.begin(), student.end());

	for (int i = 0; i < n; i++)
		printf("%s\n", student[i].name.c_str());

	return 0;
}

'Algorithm > Sorting' 카테고리의 다른 글

Baekjoon 1431 시리얼 번호  (0) 2019.08.23
Baekjoon 10814 나이순 정렬  (0) 2019.08.23
Baekjoon 1181 단어 정렬  (0) 2019.08.22
BaekJoon 10989 수 정렬하기 3  (0) 2019.01.12
BaekJoon 1026 보물  (0) 2019.01.12