백준_20291 (파일 정리_실버3_문자열_Counter_dict_split()활용법)

RostoryT·2022년 7월 13일
0


생각없이 바로 풀었음

  • 필요하다 생각한거 :
    - 누가봐도 Counter라이브러리
    - 만능 일꾼 split('.')
    - 딕셔너리
    - 정렬(sorted()를 쓰자)

솔루션 코드 - 내가 푼

  • 푸는건 15분정도? 걸린듯
  • 조금 오래걸리던데..
from collections import Counter

arr = [input() for i in range(int(input()))]

ans = []
for i in arr:
    _, key = i.split('.')
    ans.append(key)
    
c = sorted(dict(Counter(ans)).items())
for i in c:
    print(i[0], i[1])



솔루션 코드 - 블로그

  • 딕셔너리만 사용(Counter 사용 X)
  • (중요) 입력받음과 동시에 split()하고 필요한 데이터만 추출함
  • 얘도 느림ㅋ
  • 출처 : https://tmdrl5779.tistory.com/132
# 카운터 안쓰고 딕셔너리로만 푼 방법
n = int(input())

file = dict()
for _ in range(n):
    extend = (input().split('.'))[1]  # (중요) 입력받자마자 바로 확장자만 저장
    
    if not extend in file:            # 딕셔너리는 해당 키값이 idx임
        file[extend] = 1               # 처음 찾은 경우
    else:
        file[extend] += 1              # 두 번째부터

sort_file = sorted(file.items())       # 키값(item값)을 기준으로 정렬

for key, val in sort_file:             # 딕셔너리 가져올 때 반드시!!
    print(key.rstrip(), val)

profile
Do My Best

0개의 댓글