💡 Counter()는 신이다..

import sys
from collections import Counter
input = sys.stdin.readline
first = Counter(input().rstrip())
second = Counter(input().rstrip())
total = (first-second) + (second-first)
print(sum(total.values()))
- 다시 한번 Counter()의 위대함을 알게 되었다...ㅋㅋㅋㅋㅋㅋㅋ
- 문제에서는 두 단어에서 각각 삭제할 것들을 삭제해서 두 단어가 동일해지게 만들 수 있는 최소의 삭제 갯수를 구하는 것이였다.
- 결론은 삭제할 것을 삭제해서 두개의 구성요소를 동일하게 만들면 되는 것이었다,
- Counter의 합과 차를 써서 first에서 second와 동일한 요소들을 전부 제거하고, 반대로 second에서 first와 동일한 요소들을 전부 제거해서 둘을 합쳐 필요없는 요소들을 전부 구할 수 있었다.
Counter()에 대한 추가 정보
- Dict 형태로 합과 차를 전부 이용할 수 있다.
- Counter.values()를 통해서 해당 key값들의 value를 dic_values([1,2,3])으로 도출이 가능하다.
1. Dict 형태로 합과 차를 전부 이용할 수 있다.
print(first + second)
print(first - second)
- 위 코드에서 보이는 것 처럼 Counter는 합과 차를 모두 지원한다.
- 합은 합집합 , 차는 차집합과 동일하게 작동한다.
2. Counter.values()를 통해서 해당 key값들의 value를 dict_values([1,2,3])으로 도출이 가능하다.
total = Counter({a:2, b:1, c:1})
print(total.values)
print(sum(total.values())
- 위 코드에서 보이는 것과 같이 values()나 keys()를 사용하여 Counter 내부 값들을 출력할 수 있다.