< 조건 >
- 국어 점수가 감소하는 순서로
- 국어 점수가 같으면 영어 점수가 증가하는 순서로
- 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로
- 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키 코드에서 대문자는 소문자보다 작으므로 사전순으로 앞에 온다.)
[ 입력 ]
- 첫째 줄에 학생의 수 N 입력
- 둘째 줄부터 한 줄에 하나씩 각 학생의 [ 이름, 국어, 영어, 수학점수 ] 가 공백으로 구분되어 입력
- 1 ≤ 점수 ≤ 100 && 이름은 알파벳 대소문자로 이루어진 문자열 ≤ 10
[ 출력 ]
- 주어진 정렬기준으로 정렬한 후 각 줄마다 학생의 이름을 순서대로 출력
이 문제는 어떠한 자료구조 안에 학생의 성적을 저장해 주어진 기준에 따라 정렬하는 문제이다.
한 학생마다 주어지는 정보가 이름, 국어, 영어, 수학 성적으로 총 4가지이므로 구조체를 사용해서 vector에 저장해 정렬했다.
c++에서 주어지는 헤더파일에 있는 std::sort 함수를 사용해 정렬을 했는데 정렬 기준을 따로 구현해주었다.