아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

폴더 정리 (small)

면접 대비

시간 제한1초메모리 제한1024 MB

요약
폴더 트리와 파일 목록이 주어질 때, 각 폴더마다 그 아래에 있는 서로 다른 파일 이름의 수와 전체 파일 수를 구해 답한다.
난이도

보통10점 중 5점

유형
트리, DFS, 해시맵, 문자열
정답자
아직 제출이 없습니다

문제

main 폴더 안에 여러 가지 파일과 폴더가 있다.

main
 ├─ FolderA
 │    ├─ File1
 │    └─ File2
 └─ FolderB
       ├─ FolderC
       ├─ File1
       └─ File3

위 구조는 main 폴더의 하위 구조를 계층적으로 나타낸 것이다. FolderA, FolderB, FolderC는 폴더이고 File1, File2, File3은 파일이다. 이름이 같은 파일은 동일한 파일이다.

한 폴더 안에는 이름이 같은 파일이 두 개 이상 있을 수 없다.

main 하위 디렉터리에는 이름이 같은 폴더가 두 개 이상 있을 수 없다.

폴더 정리를 위해 main 폴더 하위에 있는 파일을 확인하려고 한다.

주어지는 쿼리에 대해 폴더와 파일의 정보를 알려주는 프로그램을 작성하시오.

입력

첫 번째 줄에 main 폴더 하위에 있는 폴더의 총 개수 NN과 파일의 총 개수 MM이 공백으로 구분되어 주어진다.

두 번째 줄부터 N+M+1N + M + 1 번째 줄까지 상위 폴더의 이름 PP, 폴더 또는 파일의 이름 FF, 폴더인지 아닌지를 나타내는 CC가 공백으로 구분되어 주어진다.

CC는 FF가 폴더라면 1, 파일이라면 0이다.

N+M+2N + M + 2 번째 줄에 쿼리의 개수 QQ가 주어진다.

그다음 줄부터 QQ개의 쿼리가 주어진다. 각 쿼리에는 main부터 시작하는 폴더의 경로가 들어온다. 예를 들어 main 폴더 안의 FolderB에 대한 쿼리가 들어온다면 FolderB의 경로인 main/FolderB로 주어진다. 쿼리로 주어지는 경로에는 폴더가 반드시 존재한다.

출력

쿼리 순서대로 한 줄씩, 해당 폴더 하위에 있는 파일 종류의 개수와 파일의 총 개수를 출력한다.

파일 종류의 개수는 같은 파일이 여러 개 있을 경우 하나로 센다. 파일의 총 개수는 같은 파일이 있더라도 각각 센다.

예를 들어 이름이 File1인 파일이 5개 있으면 파일 종류는 1가지이고 파일의 총 개수는 5개이다.

제한

  • 1≤N≤1,0001 \le N \le 1,000
  • 1≤M≤1,0001 \le M \le 1,000
  • 1≤∣P∣≤101 \le |P| \le 10
  • 1≤∣F∣≤101 \le |F| \le 10
  • 0≤C≤10 \le C \le 1
  • 1≤Q≤1,0001 \le Q \le 1,000
  • PP와 FF는 영어 알파벳 대소문자와 숫자로만 이루어져 있다.

예제2

  1. 예제 1

    입력
    3 4
    main FolderA 1
    main FolderB 1
    FolderA File1 0
    FolderA File2 0
    FolderB FolderC 1
    FolderB File1 0
    FolderB File3 0
    4
    main
    main/FolderA
    main/FolderB
    main/FolderB/FolderC
    
    예상 출력
    3 4
    2 2
    2 2
    0 0
    
  2. 예제 2

    입력
    4 1
    main FolderA 1
    FolderA FolderB 1
    FolderB FolderC 1
    FolderC FolderD 1
    FolderD File1 0
    3
    main
    main/FolderA
    main/FolderA/FolderB/FolderC/FolderD
    
    예상 출력
    1 1
    1 1
    1 1