n개의 파일이 주어질 때, 파일의 확장자 이름과 그 확장자에 해당되는 파일의 개수를 출력하는 문제이다.
file이 'name.extension' 형태라고 가정하면,
split() 메서드를 이용하여 각 확장자에 해당되는 파일 개수를 쉽게 파악할 수 있다.
여기서 딕셔너리 자료형을 이용했는데, 확장자 이름을 key로 두고 각 확장자에 해당되는 파일 개수를 value로 두었다.
만약 현재 파일의 확장자 이름이 이미 딕셔너리에 존재하면 value += 1, 그렇지 않다면 새로운 key로 추가하고 value를 1로 초기화한다.
확장자의 사전 순서로 출력해야 하므로, 딕셔너리를 key 값을 기준으로 정렬한 뒤, key-value를 출력하면 된다.
코드(정답)는 다음과 같다.
# 20291
import sys
n = int(sys.stdin.readline())
extensions = {}
for _ in range(n):
name, extension = list(sys.stdin.readline().rstrip().split('.'))
if extension in extensions:
extensions[extension] += 1
else:
extensions[extension] = 1
sorted_extensions = sorted(extensions.items())
for sorted_extension in sorted_extensions:
print(sorted_extension[0], sorted_extension[1])
문제를 풀고 나서.. 딕셔너리의 정렬에 대해 가볍게 정리해 보았다.
https://velog.io/@jeonghens/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%94%95%EC%85%94%EB%84%88%EB%A6%AC-%EC%A0%95%EB%A0%AC