용량 부족
시간 제한1초메모리 제한128 MB
지워야 할 파일과 지우면 안 되는 파일이 주어질 때, 지우면 안 되는 파일을 건드리지 않고 모든 지울 파일을 지우는 최소 rm 명령 수를 구한다.
문제
연수는 하드디스크의 용량이 부족해서, 필요 없는 파일들을 지워 공간을 확보하려고 한다.
모든 파일은 하나의 디렉토리 안에 있고, 연수는 그 디렉토리에서 리눅스의 rm 명령으로 파일을 지운다. rm 명령은 다음 두 가지 형태로 사용할 수 있다.
rm 파일명: 이름이 정확히파일명인 파일 하나만 지운다.rm 문자열*: 이름이문자열과 같거나문자열로 시작하는 모든 파일을 한 번에 지운다. 와일드카드*는 반드시 문자열의 맨 끝에만 붙일 수 있다. (예를 들어rm *.txt처럼 앞이나 중간에 쓸 수는 없다.)문자열을 비워rm *로 쓰면 디렉토리의 모든 파일이 지워진다.
지워야 하는 파일들과, 절대 지우면 안 되는 파일들이 주어진다. 지워야 하는 파일은 모두 지우면서 지우면 안 되는 파일은 하나도 지우지 않도록 하는 데 필요한 rm 명령의 최소 횟수를 구하여라.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같은 형식으로 주어진다.
- 첫째 줄에 지워야 하는 파일의 개수
N1(1 ≤ N1 ≤ 1000)이 주어진다. - 다음
N1개의 줄에 지워야 하는 파일의 이름이 한 줄에 하나씩 주어진다. - 그다음 줄에 지우면 안 되는 파일의 개수
N2(0 ≤ N2 ≤ 1000)가 주어진다. - 다음
N2개의 줄에 지우면 안 되는 파일의 이름이 한 줄에 하나씩 주어진다.
모든 파일 이름은 길이가 1 이상 20 이하이며, 영문 대소문자, 숫자, 그리고 점(.)으로만 이루어진다. 한 테스트 케이스 안에서 등장하는 파일 이름은 모두 서로 다르다.
출력
각 테스트 케이스마다 필요한 rm 명령의 최소 횟수를 한 줄에 하나씩 출력한다.
힌트
첫 번째 테스트 케이스에서 지워야 하는 파일들은 다음 8개의 명령으로 정확히 지울 수 있다.
rm BAPC.*, rm filt*, rm filename*, rm clean, rm cleanup.IN1, rm cleanup.IN2, rm cleanup.out, rm p*