요청한 경로마다 빠진 상위 디렉터리를 세어 필요한 mkdir 횟수를 구합니다.
쉬움3트라이문자열면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB유닉스 컴퓨터는 데이터를 디렉터리에 저장한다. 맨 위에는 루트 디렉터리 하나가 있고, 그 안에 이름이 서로 다른 디렉터리가 여러 개 들어갈 수 있다. 그 디렉터리 안에 또 디렉터리가 들어갈 수 있고, 이런 구조가 계속 이어진다.
디렉터리는 자기 이름과 부모 디렉터리(자신을 직접 담고 있는 디렉터리)로 유일하게 정해진다. 이 정보를 경로로 적는데, 경로는 부분마다 앞에 슬래시('/')를 하나씩 붙여 이어 쓴 것이다. 마지막 부분이 그 디렉터리의 이름이고, 앞의 나머지 전체가 부모 디렉터리의 경로다. 예를 들어 다음 경로를 보자.
/home/gcj/finals
이 경로는 "/home/gcj"가 가리키는 디렉터리 안에 있는, 이름이 "finals"인 디렉터리를 뜻한다. "/home/gcj"는 다시 "/home"이 가리키는 디렉터리 안의 이름이 "gcj"인 디렉터리다. "/home"은 부분이 하나뿐이므로 루트 디렉터리 안의 이름이 "home"인 디렉터리를 가리킨다.
디렉터리는 mkdir 명령으로 만든다. 경로를 하나 지정하면 mkdir은 그 경로가 가리키는 디렉터리를 만드는데, 부모 디렉터리가 이미 있을 때만 만든다. 예를 들어 아무것도 없는 상태에서 "/home/gcj/finals"와 "/home/gcj/quals"를 만들려면 명령 네 개가 필요하다.
mkdir /home
mkdir /home/gcj
mkdir /home/gcj/finals
mkdir /home/gcj/quals
컴퓨터에 이미 있는 디렉터리 전체와, 없으면 새로 만들고 싶은 디렉터리 목록이 주어진다. mkdir 명령을 몇 번 써야 하는지 구하여라.
첫 줄에 테스트 케이스의 수 T가 주어진다. 이어서 T개의 테스트 케이스가 주어진다. 각 케이스의 첫 줄에는 두 정수 N과 M이 공백으로 구분되어 주어진다.
다음 N개의 줄에는 컴퓨터에 이미 있는 디렉터리의 경로가 한 줄에 하나씩 주어진다. 루트 디렉터리를 뺀 나머지 디렉터리는 모두 이 목록에 들어 있다. (루트 디렉터리는 어느 컴퓨터에나 있으므로 따로 적지 않는다.)
다음 M개의 줄에는 만들고 싶은 디렉터리의 경로가 한 줄에 하나씩 주어진다.
입력의 모든 경로는 위에서 설명한 형식을 따른다. 즉 경로는 소문자와 숫자로만 이루어진 문자열('a'부터 'z', '0'부터 '9') 하나 이상을 각각 앞에 슬래시를 하나씩 붙여 이어 쓴 것이다. 이 문자열은 절대 비어 있지 않다.
각 테스트 케이스마다 "Case #x: y" 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 케이스 번호이고, y는 필요한 mkdir 명령의 개수다.