728x90
import sys
input = sys.stdin.readline
N = int(input())
lst = {}
for i in range(N):
file = input().strip()
tmp = file[file.find('.') + 1:]
if tmp in lst:
lst[tmp] += 1
else:
lst.setdefault(tmp, 1)
lst2 = sorted(lst.items())
for i in lst2:
print(i[0], i[1])
푸는 덴 어렵지 않았지만 알아야 할 것이 많았던 문제..
1.딕셔너리 사용법 알기
2.개행 제거하는 방법 알기
=> str.strip() 이런 식으로
3.마지막 인덱스 참고하는 방법 알기
=> str.find('.') : 첫 .이 나온 인덱스 알 수 있음 (+ 자매품 str.rfind('.')뒤부터 인덱스 번호 찾음)
4.딕셔너리에 요소 추가하고 values 증가시키는 방법 알기
=> 처음 인덱스에 요소 추가를 할 때는 lst.setdefault(key, values)
그 뒤부터는 lst[key] += 1이런 식으로 하면 된다.
5.딕셔너리를 키값 기준으로 오름차순 정렬하는 방법 알기
=> lst2 = sorted(lst.items())
이렇게 하면 오름차순으로 정렬 가능하다.
6.리스트 안의 튜플 요소 출력하는 방법 알기
5번처럼 정렬했으면 [(,), (,)] 이런 식으로 되는데 그럴 때는 for문으로 리스트를 돌면서 i[0] i[1]이런 식으로 안의 요소들을 구할 수 있다.
등을 알아야 이 문제를 수월하게 풀 수 있다.
728x90
'알고리즘 공부(C++)' 카테고리의 다른 글
백준 1003 피보나치 함수 (다이나믹 프로그래밍 / 파이썬) (0) | 2022.09.13 |
---|---|
백준 15663 N과 M(9) 백트래킹 파이썬 (2) | 2022.09.11 |
백준 11663 선분 위의 점(파이썬) 이분 탐색 (0) | 2022.09.07 |
백준 19637 IF문 좀 대신 써줘 - 파이썬 (0) | 2022.09.07 |
백준 1343 폴리오미노 (0) | 2022.09.06 |