[20291번] 파일 정리

황성미·2023년 7월 23일
0

백준

목록 보기
3/6
post-custom-banner



n = int(input())

file_list = {}  #{확장자 : 파일 개수} 딕셔너리

for file in range(n):
  cnt = 0 #파일 개수 
  #파일 확장자를 기준으로 파일 개수를 찾는 것이 핵심인 문제이다.
  #따라서 우리는 파일의 확장자만 필요!
  ext = input().split('.')[1] #'.'을 구분자로 나누었을때 확장자에 해당하는 것
  if ext not in file_list.keys(): #딕셔너리에 들어있는 확장자가 아니면 새로 추가해야함
    cnt += 1
    file_list[ext] =  cnt
  else: #기존 딕셔너리 키에 있다면 기존 파일 개수를 하나 늘려주면 됨.
    file_list[ext] = file_list[ext] + 1

#출력
for ext, cnt in dict(sorted(file_list.items())).items():
  print(f'{ext} {cnt}')


처음에 풀었을 때는 <시간 초과>가 떴는데.. 이 코드도 같이 첨부한다.

n = int(input())

file_list = []
for file in range(n):
  ext = input().split('.')[1] #확장자
  file_list.append(ext) #확장자를 리스트에 추가함

file_list.sort() # 사전순으로 정렬

for idx in range(n):
  #첫번째로 나오는 확장자는 한번도 카운트를 세지 않았으므로
  #개수를 세서 출력해주기
  if idx == 0:
    print(f'{file_list[idx]} {file_list.count(file_list[idx])}')
  #두번째부터 나오는 확장자들은 이전에 출력된 확장자인지 확인 필요
  else:
    #이전에 출력된적이 있다면 건너뛰고
    if file_list[idx] == file_list[idx - 1]:
      continue
    #새로운 확장자이면 개수를 세서 출력해주기
    else:
      print(f'{file_list[idx]} {file_list.count(file_list[idx])}')
profile
데이터 분석가(가 되고픈) 황성미입니다!
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

좋은 정보 얻어갑니다, 감사합니다.

답글 달기