새소식

⌨️ Algorithms/백준

[Python] 백준 20291번_파일 정리

2023. 3. 16. 21:50

  • -

https://www.acmicpc.net/problem/20291

 

20291번: 파일 정리

친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를

www.acmicpc.net

 

  • 스브러스의 요청
    • 파일을 확장자 별로 정리해서 몇 개씩 있는지 알려줘
    • 보기 편하게 확장자들을 사전 순으로 정렬해 줘
  • 입력
    • 첫째 줄에 바탕화면에 있는 파일의 개수 N이 주어짐 (1≤N≤50 000)
    • 둘째 줄부터 N개 줄에 바탕화면에 있는 파일의 이름이 주어짐
    • 파일의 이름은 알파벳 소문자와 점(.)으로만 구성되어 있음
    • 점은 정확히 한 번 등장하며, 파일 이름의 첫 글자 또는 마지막 글자로 오지 않음
    • 각 파일의 이름의 길이는 최소 3, 최대 100
  • 출력
    • 확장자의 이름과 그 확장자 파일의 개수를 한 줄에 하나씩 출력
    • 확장자가 여러 개 있는 경우 확장자 이름의 사전순으로 출력
  • 시간 제한: 3초
  • 메모리 제한: 1024 MB

 

""" 입출력 예시) 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 """

 

 

## 의사코드 ## # 파일의 확장자 별로 정리 # 확장자 = 입력.split('.')[1] # 확장자들만 리스트에 저장 # 확장자 별 개수 카운트 # from collections import Counter # 확장자들 이름으로 사전 순으로 정렬 # sorted(Counter(확장자 리스트).items())

 

 

 

 

from collections import Counter n = int(input()) extension_list = [] # 확장자들을 저장할 리스트 for _ in range(n): # 입력의 확장자만 가져오기 extension = input().split('.')[1] extension_list.append(extension) # 확장자의 개수를 카운트하고, 확장자들을 사전 순으로 정렬 cnt = sorted(Counter(extension_list).items()) for c in cnt: print(c[0], c[1])

 

 

-> PyPy3로 제출 시 시간 단축 가능

 

 

  • Counter의 key 값을 기준으로 정렬
    • sorted(Counter.items())
  • Counter의 value 값을 기준으로 정렬
    • Counter.most_common()

 

 

 

 

 

 

https://www.ebeb-blog.com/2021/08/06/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EC%B9%B4%EC%9A%B4%ED%8A%B8-%EC%A0%95%EB%A0%AC-counter-sort-with-aes-ddt/

 

파이썬 리스트 카운트, 정렬 (Counter, sort) with. AES DDT - EBeb's BLOG

파이썬 리스트의 Counter함수를 사용한 카운트와 그 결과의 정렬

www.ebeb-blog.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!