문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

7067 : Counter 집합 연산

•시간제한: 1.000 S •메모리제한: 256 MB •제출: 0 •통과: 0 •만든사람: suakii

7067 : Counter 집합 연산

시간 1.000s · 메모리 256MB · 제출 0 · 정답 0

문제 설명

파이썬 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)

출력 설명

출력은 총 3줄로 구성됩니다.
첫째 줄에는 합집합(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 형식으로 출력해 보십시오.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘