Counter() 객체
- 편리하고 빠르게 개수를 세도록 지원하는 계수기 도구 제공
- collections 모듈의 Counter() 객체 선언하여 사용한다.
ex) from collections import Counter
from collections import Counter
cnt = Counter()
for word in ['yun', 'Lee', 'yun', 'bang', 'Lee', 'Lee']:
cnt[word] += 1
print(cnt) # Counter({'Lee': 3, 'yun': 2, 'bang': 1})
words = ['yun', 'Lee', 'yun', 'bang', 'Lee', 'Lee']
cnt1 = Counter(words)
print(cnt1) # Counter({'Lee': 3, 'yun': 2, 'bang': 1})
words = "yuneene shop"
cnt2 = Counter(words)
print(cnt2) # Counter({'e': 3, 'n': 2, 'y': 1, 'u': 1, ' ': 1, 's': 1, 'h': 1, 'o': 1, 'p': 1})
#Counter 주요 추가 매서드
#.most_common(n) : n개의 요소를 index 순으로 가져온다.
print(cnt2.most_common(4)) # [('e', 3), ('n', 2), ('y', 1), ('u', 1)]
#.elements() 개수만큼 반복되는 요소에 대한 이터레이터 반환
print(sorted(cnt2.elements())) # [' ', 'e', 'e', 'e', 'h', 'n', 'n', 'o', 'p', 's', 'u', 'y']
#.total() 총 개수 반환
print(cnt2.total()) # 12
▶ Counter() 객체 연습 백준 문제 풀이
https://www.acmicpc.net/problem/10815
import sys
from collections import Counter
N = int(sys.stdin.readline().rstrip())
arrN = list(map(int, sys.stdin.readline().rsplit()))
M = int(sys.stdin.readline().rstrip())
arrM = list(map(int, sys.stdin.readline().rsplit()))
#Counter 객체로 개수 확인
cnt = Counter(arrN) # Counter({6: 1, 3: 1, 2: 1, 10: 1, -10: 1})
#print(cnt)
rtn = ""
for i in arrM:
if (i in cnt):
print(1, end=" ")
else:
print(0, end=" ")
https://www.acmicpc.net/problem/10816
import sys
from collections import Counter
N = int(sys.stdin.readline().rstrip())
arrN = list(map(int, sys.stdin.readline().rsplit()))
M = int(sys.stdin.readline().rstrip())
arrM = list(map(int, sys.stdin.readline().rsplit()))
#Counter 객체로 개수 확인
cnt = Counter(arrN) #Counter({10: 3, 3: 2, -10: 2, 6: 1, 2: 1, 7: 1})
#print(cnt)
rtn = ""
for i in arrM:
if (i in cnt):
print(cnt[i],end=" ")
else:
print(0, end=" ")
☞ 파이썬 자습서 참고 사이트
https://docs.python.org/ko/3/library/collections.html#collections.Counter
'코딩라이브러리 > 파이썬' 카테고리의 다른 글
파이썬 스택, 큐 deque (with 백준 18258) (0) | 2024.05.30 |
---|---|
파이썬 중복제거 set 집합함수 (with 백준 2776) (0) | 2024.05.29 |
파이썬 람다 함수 lambda (with 백준 1181) (0) | 2024.05.27 |
파이썬 정렬 sort, sorted (with 백준 2750, 5597, 1181) (0) | 2024.05.24 |
파이썬 for while 조건문 (with 백준 2446, 2522) (2) | 2024.05.23 |