이미 있는 디렉터리와 만들고 싶은 경로가 주어지면 새로 실행해야 하는 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 명령의 횟수다.