바이너리 서치 알고리즘 문제를 풀다가 Counter도 활용할수 있다는걸 알게되었다
https://www.acmicpc.net/problem/10816
위 문제에서 두번째 리스트에 있는 숫자가 첫번째 리스트에 몇개나 있는지 찾아내면 되는데 이런문제를 풀때 유용하다
from collections import Counter
데이터가 저장된 배열을 Counter 함수에 넣으면 dictionary형태로 각 원소가 몇개씩 있는지 저장된 객체를 얻게된다
Counter([6, 3, 2, 10, 10, 10, -10, -10, 7, 3])
>Counter({10: 3, 3: 2, -10: 2, 6: 1, 2: 1, 7: 1})
문자열을 넣으면 각 단어의 갯수를 세준다
Counter('hello world')
>Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})
따라서 위의 문제는 Counter() 메서드로 갯수를 먼저 구한 뒤 주어진 리스트의 원소가 Counter객체 안에 있는지 체크후에 갯수를 print 해주면 된다
정말 좋은 정보 감사합니다!