문제 1018 · 기초 3
같은 코드 다른 사람
해시 · 정렬
테스트별 제한 1500ms · 브라우저 채점
문제
과제 제출 시스템은 제출된 코드마다 지문(16진수 8자리)을 남긴다. 서로 다른 두 사람 이상이 같은 지문의 코드를 냈다면 확인이 필요하다. 같은 사람이 같은 코드를 여러 번 낸 것은 한 사람으로 센다. 제출 기록 N개가 주어질 때, 서로 다른 사람 2명 이상이 낸 지문을 모두 찾고 지문마다 몇 명이 냈는지 구하라.
입력
첫째 줄에 제출 수 N (1 ≤ N ≤ 20,000) 이 주어진다. 다음 N개 줄에 아이디와 지문이 공백으로 구분되어 주어진다. 아이디는 영문 소문자와 숫자로 된 1~10 글자다. 지문은 0~9, a~f 로 된 8글자다.
출력
해당하는 지문을 사전 순서로 한 줄에 하나씩, 지문과 사람 수를 공백으로 구분해 출력한다. 하나도 없으면 CLEAN 을 출력한다.
예제 입력 1
6 kim 1a2b3c4d lee 1a2b3c4d kim 1a2b3c4d park 00ff00ff choi 00ff00ff lee 99999999
예제 출력 1
00ff00ff 2 1a2b3c4d 2
예제 입력 2
3 kim 1a2b3c4d kim 1a2b3c4d lee 0000abcd
예제 출력 2
CLEAN
힌트 펼치기
- 지문을 키로, 그 지문을 낸 아이디의 집합(set)을 값으로 하는 사전(해시 맵)을 만들자.
- 집합을 쓰면 같은 사람이 여러 번 낸 것이 자동으로 한 번만 세어진다.
관련 장
풀이 작성
코드는 서버로 전송하지 않습니다. 테스트가 공개되는 연습용 채점으로, 대회·인증용이 아닙니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
로그인 여부와 관계없이 이 브라우저에만 최근 제출 50개를 저장합니다.