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

7069 : 태그 카운터

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

7069 : 태그 카운터

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

문제 설명

블로그 게시물에 등록된 태그들을 수집하여 빈도를 분석하고 검색 조건을 처리하는 프로그램을 작성하십시오.
게시물에 포함되는 중복 태그는 게시물당 하나로 취급(set 처리)하며, 다음과 같은 검색 쿼리를 처리해야 합니다.
- FREQ tag: 특정 태그가 포함된 게시물의 수를 정수로 출력합니다.
- BOTH t1 t2: t1과 t2 두 태그가 동시에 모두 포함된 게시물의 수를 정수로 출력합니다.
- TOP K: 전체 태그 중 가장 빈도가 높은 상위 K개의 태그명을 빈도 내림차순(높은 순), 동점 시 사전순으로 정렬하여 공백으로 구분해 출력합니다. (전체 태그 수가 K보다 적으면 전체 태그 출력)

[제약 조건]
• 게시물 수 $N$: $1 \le N \le 200$
• 쿼리 수 $Q$: $1 \le Q \le 100$

입력 설명

첫째 줄에 게시물의 수 N이 주어집니다. (1 ≤ N ≤ 200)
둘째 줄부터 N개의 줄에 걸쳐 각 게시물에 포함된 태그들이 공백으로 구분되어 주어집니다.
이후 다음 줄에 쿼리의 수 Q가 주어집니다. (1 ≤ Q ≤ 100)
그 다음 줄부터 Q개의 줄에 걸쳐 "FREQ tag", "BOTH t1 t2", "TOP K" 형식의 쿼리가 한 줄에 하나씩 주어집니다.

출력 설명

Q개의 줄에 걸쳐 각 쿼리에 대한 연산 결과를 출력합니다.

입력 예시
COPY
복사되었습니다!

4
python programming study
python coding fun
java programming study
coding fun
4
FREQ python
BOTH programming study
BOTH python java
TOP 3

출력 예시
COPY
복사되었습니다!

2
2
0
coding fun programming

도움

각 게시물의 태그들을 set으로 중복 제거하여 리스트에 모으고, 전체 태그들의 등장 빈도는 딕셔너리로 계산하십시오.
FREQ는 딕셔너리에서 바로 조회하고, BOTH는 두 집합의 교집합 연산(t1 in post and t2 in post)의 개수를 누적하며, TOP은 딕셔너리 아이템들을 다중 정렬하여 출력하면 됩니다.

출처/분류

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