백준 20291

justhaza.log·2024년 2월 5일

알고리즘: BOJ

목록 보기
18/125

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

profile
알고리즘이나 SQL 문제 풀이를 올리고 있습니다. 피드백 환영합니다!

0개의 댓글