수강 신청

면접 대비

시간 제한1초메모리 제한128 MB

요약
이름과 과목으로 이루어진 수강 신청 n개가 주어질 때, 과목별로 중복 없이 신청한 학생 수를 세어 과목명을 ASCII 순서로 출력한다.
난이도

보통10점 중 4점

유형
해시맵, 정렬
정답자
아직 제출이 없습니다

문제

대학의 모든 강의를 학생들의 선택에 맞추어 충돌을 최소로 하며 배정하는 일은 어렵습니다. 어떤 학생은 아예 수강 신청을 하지 않고, 또 어떤 학생은 이미 신청한 사실을 잊고 같은 강의를 여러 번 신청하기 때문에 더욱 까다로워집니다.

주어진 모든 수강 신청에 대해, 각 강의를 신청한 서로 다른 학생이 몇 명인지 세어야 합니다.

입력

첫째 줄에 정수 nn(0<n≤1000000 < n \le 100000)이 주어집니다. 수강 신청의 개수입니다. 이어지는 nn개의 줄에는 각각 공백 하나로 구분된 세 문자열, 즉 학생의 이름(first name), 성(last name), 그리고 신청하려는 강의가 주어집니다.

이름과 성은 각각 길이 11 이상 2020 이하의 대문자 알파벳 문자열입니다. 강의는 길이 11 이상 1010 이하의 대문자 알파벳과 숫자로 이루어진 문자열입니다. 한 학생이 같은 강의를 여러 번 신청하면 그중 첫 번째 신청만 인정합니다. 이름과 성이 모두 같은 학생은 없으므로, (이름, 성) 쌍은 학생을 유일하게 구분합니다.

출력

신청된 각 강의에 대해, 강의 이름과 공백 하나, 그리고 그 강의를 신청한 서로 다른 학생 수를 한 줄에 출력합니다. 강의는 사전순(ASCII 순)으로 정렬하여 출력하며, 숫자가 문자보다 앞에 오도록 합니다.

예제2

  1. 예제 1

    입력
    1
    PINK TIE CS241
    
    예상 출력
    CS241 1
    
  2. 예제 2

    입력
    3
    JANE DOE MATH101
    JANE DOE MATH101
    JANE DOE CS101
    
    예상 출력
    CS101 1
    MATH101 1