백준 문제풀이 20291 파일정리

Kim. K.S·2022년 1월 17일
0

boj 20291 : 파일 정리

문제 주소: https://www.acmicpc.net/problem/20291

난이도: silver 3

1.문제설명

  • 파일들의 이름과 확장자가 주어진다

    "idecs.git" -> 요렇게

  • 이때 확장자별로 몇개의 파일이 있는지 카운팅한 다음
  • 확장자 이름의 사전순으로 확장자와 개수를 출력한다.

2.문제해결 아이디어.

  • split으로 확장자와 이름을 분해해서 확장자만 저장
  • 확장자를 count
  • 이를 이름으로 정렬 하면 될꺼같다.

3.문제접근법

  • 가장 처음 생각한 방법. (시간초과, 다시생각해봐도 시간복잡도 너무 손해 O(N) + O(N) +O(N^2) +O(NlogN))
    • 리스트에 확장자만 append하고
    • set에 다 추가해서
    • set 원소를 순회하면서 리스트에서 count하고 그 결과를 튜플로(확장자, 개수)로 리스트에 저장 후
    • sort한 다음에 출력
  • Counter 사용
    • Counter 사용하면 dictionary 형식으로 그 아이템이 몇번있나 count해서 저장해줌
    • 이제 확장자 이름순으로 정렬해서 출력

4.특별히 참고할 사항

  • Counter는 수업시간에 조교님이 설명해주셨는데 알아두면 좋은거같다.

5.코드구현

import sys
input = sys.stdin.readline
N = int(input())
from collections import Counter
files = []
for i in range(N):
    _, extension = input().rstrip().split('.')
    files.append(extension)
count_dict = Counter(files)
count = sorted(count_dict.items(), key = lambda x: x[0])
for item in count:
    print(item[0], item[1])
profile
시원한 맥주, 음악, 야구, 사진찍기를 좋아합니다.

0개의 댓글

관련 채용 정보