메모리: 39928 KB, 시간: 292 ms
자료 구조, 해시를 사용한 집합과 맵, 구현, 정렬, 문자열, 트리를 사용한 집합과 맵
2024년 11월 6일 22:26:12
한국항공대학교에는 올해 새로 들어온 큰 비행기가 있다.
항공대학교 본관 옆 A300 모형
올해 졸업식에 참가하는 모든 사람은 비행기가 보이게 사진을 찍고싶어하지만, 졸업식은 하루뿐이라 모든 사람이 원하는 장소와 시간에 촬영할 수 없다.
따라서 학교에서는 최대한 많은 사람이 촬영할 수 있도록 미리 졸업식 전날 원하는 장소와 시간대를 제출받아 예상되는 혼잡 장소와 시간대를 공지하기로 하였다.
제출은 다음과 같은 값을 가진다.
- 학생 이름(name): 제출한 학생의 이름이다. 공백을 포함하지 않는 영어 소문자로 구성된 10자 이하의 한 단어로 구성된다. 만약 한 학생이 여러 번 제출한 경우, 가장 첫 번째 제출 이외의 제출들은 모두 무시한다.
- 장소(place): 학생이 촬영하기를 원하는 장소이다. 공백을 포함하지 않는 영어 소문자로 구성된 20자 이하의 한 단어로 구성된다.
- 시간대(time): 학생이 촬영하기를 원하는 시간대이다. 공백으로 구분된 두 개의 시각으로 주어지며, 시각은 50,000
$50,000$ 이하의 양의 정수로 주어진다. 첫 번째 시각은 촬영 시작 시각, 두 번째 시각은 촬영 종료 시각을 나타낸다. 단, 종료 시각이 시작 시각보다 항상 크다.
제출된 장소와 시간대의 목록을 이용해 학교가 혼잡 장소와 시간대를 공지하는 방법은 다음과 같다.
- 가장 많은 사람이 제출한 (장소, 시간대) 쌍을 선택한다.
- 만약 1
$1$ 번에 해당하는 구간이 여러 개라면, 사전 순으로 가장 앞에 오는 장소를 선택한다. 사전 순의 기준은 아스키 코드 순이다. 예를 들어 구간 배열 ['ab', 'a', 'aa', ba']를 정렬한 배열은 ['a', 'aa', 'ab', 'ba']가 된다. - 만약 2
$2$ 번에서 고른 장소에 가장 많이 제출된 시간대가 여러 개라면, 가장 빠른 시간대를 고른다.
첫째 줄에 제출 수 N
다음 N
입력에서 주어지는 장소(place)의 종류는 최대 10
첫째 줄에 학교가 공지할 것으로 예상되는 혼잡 (장소, 시간대) 쌍을 공백으로 구분하여 출력한다. 이때 시간대는 조건을 만족하는 가장 긴 시간대를 의미한다.