7067 : Counter 집합 연산
•시간제한: 1.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
파이썬
두 줄의 단어 리스트 A와 B를 카운팅한 후, 다음 3가지 집합 연산 결과를 구하여 형식에 맞춰 출력하십시오.
1. A | B (합집합): 각 단어의 빈도 중 최댓값을 취합니다.
2. A - B (차집합): A의 빈도에서 B의 빈도를 차감하고, 결과 빈도가 0 이하인 단어는 제거합니다.
3. A & B (교집합): 각 단어의 빈도 중 최솟값을 취하고, 0 이하인 단어는 제거합니다.
각 결과는 단어를 사전순으로 정렬하여
[제약 조건]
• 각 집합 단어 수: $\le 500$ (소문자 단어)
collections.Counter 객체는 요소들의 빈도를 카운팅하는 딕셔너리의 일종이지만, 합집합/교집합/차집합 등의 다채로운 다중집합(Multiset) 연산을 지원합니다.두 줄의 단어 리스트 A와 B를 카운팅한 후, 다음 3가지 집합 연산 결과를 구하여 형식에 맞춰 출력하십시오.
1. A | B (합집합): 각 단어의 빈도 중 최댓값을 취합니다.
2. A - B (차집합): A의 빈도에서 B의 빈도를 차감하고, 결과 빈도가 0 이하인 단어는 제거합니다.
3. A & B (교집합): 각 단어의 빈도 중 최솟값을 취하고, 0 이하인 단어는 제거합니다.
각 결과는 단어를 사전순으로 정렬하여
단어:빈도 형식으로 공백으로 구분해 한 줄에 출력합니다.[제약 조건]
• 각 집합 단어 수: $\le 500$ (소문자 단어)
입력 설명
첫째 줄에 집합 A를 이룰 소문자 단어들이 공백으로 구분되어 주어집니다. (총 단어 수 ≤ 500)
둘째 줄에 집합 B를 이룰 소문자 단어들이 공백으로 구분되어 주어집니다. (총 단어 수 ≤ 500)
둘째 줄에 집합 B를 이룰 소문자 단어들이 공백으로 구분되어 주어집니다. (총 단어 수 ≤ 500)
출력 설명
출력은 총 3줄로 구성됩니다.
첫째 줄에는 합집합(A | B), 둘째 줄에는 차집합(A - B), 셋째 줄에는 교집합(A & B)의 결과를 사전순 정렬 형식으로 출력합니다. (각 결과가 비어있는 경우 빈 줄을 출력합니다.)
첫째 줄에는 합집합(A | B), 둘째 줄에는 차집합(A - B), 셋째 줄에는 교집합(A & B)의 결과를 사전순 정렬 형식으로 출력합니다. (각 결과가 비어있는 경우 빈 줄을 출력합니다.)
입력 예시
COPY
복사되었습니다!
복사되었습니다!
apple apple banana
apple banana banana cherry
출력 예시
COPY
복사되었습니다!
복사되었습니다!
apple:2 banana:2 cherry:1
apple:1
apple:1 banana:1
도움
파이썬의
출력 시에는
collections.Counter를 생성하면 |, -, & 연산을 직접 연산자로 수행할 수 있습니다.출력 시에는
sorted(counter.items())를 통해 사전순 정렬 리스트를 얻은 후 f-string 형식으로 출력해 보십시오.