less than 1 minute read

문제

#20291 파일 정리
Silver3
적용 알고리즘: X (String)


풀이 방법

  • 딕셔너리 자료구조 사용 (key:확장자, value:개수)
  • 앞에 파일명은 필요가 없음

코드 흐름

  1. 사용자에게서 입력을 받는다. 확장자만 필요하므로 split함수로 .을 기준으로 나눈 뒤 맨 뒤에 요소만 가져온다.
  2. 만약 해당 확장자가 딕셔너리 안에 존재하지 않는다면, key로 확장자명을, value를 1로 초기화해준다.
  3. 만약 확장자가 이미 딕셔너리 안에 존재한다면, 개수(value)를 늘려준다.
  4. 딕셔너리를 key를 기준으로 sort해서 출력한다.

코드

n = int(input())

dic = {}
for i in range(n):
    file = input().split(".")[-1]
    if (file in dic):
        dic[file] += 1
    else:
        dic[file] = 1

dic = dict(sorted(dic.items()))

for key, value in dic.items():
    print(key, value)

체감 난이도: 1.1/5
쉬웠다. 처음에는 이중포문을 사용했는데 이중포문을 사용하면 시간초과 문제가 발생한다. 이런 류의 문제는 딕쇼너리가 유용한거 같다.