만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

파일 정리

면접 대비

시간 제한3초메모리 제한1024 MB

요약
N개의 파일 이름이 주어질 때 확장자별 파일 개수를 세고, 확장자를 사전순으로 정렬해 개수와 함께 출력한다.
난이도

쉬움10점 중 3점

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

문제

친구에게서 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악했다. 바탕화면에 온갖 파일이 정리되지 않은 채 가득했기 때문이다. 화면 한쪽에는 친구가 남긴 메시지가 있었다.

바탕화면의 파일에는 값진 보물에 대한 정보가 들어 있어. 하나라도 지우면 보물은 물론이고 다시는 노트북을 쓸 수 없게 될 거야. 파일을 잘 분석해서 보물의 주인공이 될 수 있길 바랄게. 힌트는 “확장자”야.

화가 나 있던 스브러스는 보물 이야기에 금세 화가 풀렸고, 보물의 정보를 알아내려고 애썼다. 하지만 파일이 너무 많아 이내 포기했고, 보물의 절반을 보상으로 주겠다며 파일 정리를 부탁해 왔다. 스브러스의 요청은 다음과 같다.

  • 파일을 확장자별로 정리해서 몇 개씩 있는지 알려줘
  • 보기 편하게 확장자를 사전 순으로 정렬해 줘

보물의 절반을 얻을 수 있도록, 어서 스브러스의 노트북 파일을 정리할 프로그램을 만들자!

입력

첫째 줄에 바탕화면에 있는 파일의 개수 NN이 주어진다. (1≤N≤50 0001 \leq N \leq 50\ 000)

둘째 줄부터 NN개 줄에 바탕화면에 있는 파일의 이름이 주어진다. 파일의 이름은 알파벳 소문자와 점(.)으로만 구성되어 있다. 점은 정확히 한 번 등장하며, 파일 이름의 첫 글자나 마지막 글자로 오지 않는다. 각 파일 이름의 길이는 최소 33, 최대 100100이다.

출력

확장자의 이름과 그 확장자 파일의 개수를 한 줄에 하나씩 출력한다. 확장자가 여러 개인 경우 확장자 이름의 사전순으로 출력한다.

힌트

엄청난 보물의 정체는 바탕화면을 정리했다는 뿌듯함이라고 알려진다.

예제1

  1. 예제 1

    입력
    8
    sbrus.txt
    spc.spc
    acm.icpc
    korea.icpc
    sample.txt
    hello.world
    sogang.spc
    example.txt
    
    예상 출력
    icpc 2
    spc 2
    txt 3
    world 1