[C++] 백준 10825번 풀이 (국영수)

정민경·2023년 2월 7일
0

baekjoon

목록 보기
28/57
post-thumbnail

- 문제 (10825번) : 국영수

  • N명의 학생의 [ 이름, 국어성적, 영어성적, 수학성적 ] 을 입력받아 주어진 조건으로 학생을 정렬해 이름을 순서대로 출력하는 문제

    < 조건 >

    1. 국어 점수가 감소하는 순서로
    2. 국어 점수가 같으면 영어 점수가 증가하는 순서로
    3. 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로
    4. 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키 코드에서 대문자는 소문자보다 작으므로 사전순으로 앞에 온다.)

- 입력 및 출력

[ 입력 ]

  • 첫째 줄에 학생의 수 N 입력
  • 둘째 줄부터 한 줄에 하나씩 각 학생의 [ 이름, 국어, 영어, 수학점수 ] 가 공백으로 구분되어 입력
  • 1 ≤ 점수 ≤ 100 && 이름은 알파벳 대소문자로 이루어진 문자열 ≤ 10

[ 출력 ]

  • 주어진 정렬기준으로 정렬한 후 각 줄마다 학생의 이름을 순서대로 출력

- 문제 풀이

  • 이 문제는 어떠한 자료구조 안에 학생의 성적을 저장해 주어진 기준에 따라 정렬하는 문제이다.
    한 학생마다 주어지는 정보가 이름, 국어, 영어, 수학 성적으로 총 4가지이므로 구조체를 사용해서 vector에 저장해 정렬했다.

  • c++에서 주어지는 헤더파일에 있는 std::sort 함수를 사용해 정렬을 했는데 정렬 기준을 따로 구현해주었다.


- 최종 코드

0개의 댓글