학습
시험

하위 파일 찾기

난이도
BEGINNER

문제 설명

이차원 문자열 배열 relations가 주어집니다. relations의 각 원소는 [부모 디렉토리 이름, 하위 항목 속성, 하위 항목 이름]의 형식으로 이루어져 있으며, 이 중 하위 항목 속성은 "dir"(디렉토리) 또는 "file"(파일) 중 하나입니다.
항상 "root"라는 이름의 루트 디렉토리가 존재하며, 이 루트 디렉토리 하위에 있는 모든 파일들의 이름을 사전순으로 정렬해 반환하는 solution 함수를 작성하시오.

예를 들어, relations가 [["root", "dir", "apple"], ["apple", "file", "banana"], ["durian", "file", "carrot"], ["apple", "dir", "durian"]]과 같이 주어진다면, 해당 디렉토리 구조는 다음과 같습니다.

root
  ∟ apple (dir)
     ∟ banana (file)
     ∟ durian (dir)
        ∟ carrot (file)

따라서 루트 디렉토리 하위에 있는 모든 파일들의 이름을 사전순으로 정렬하여 [“banana”, “carrot”]을 반환합니다.


제한 사항

  • relations의 길이는 1 이상 10,000 이하입니다.

  • 루트 디렉토리는 적어도 하나의 하위 항목을 가집니다.

  • 부모 디렉토리 이름은 항상 "dir"(디렉토리) 속성의 항목만 주어집니다.

  • 하위 항목 이름은 길이 1 이상 10 이하의 문자열이며, 알파벳 소문자(a~z)로만 이루어집니다.

  • 모든 항목(디렉토리와 파일)의 이름은 중복되지 않습니다.

  • relations의 모든 관계에서 사이클은 존재하지 않습니다.


입출력 예

테스트케이스 번호 relations return
1 [["root","dir","apple"],["apple","file","banana"],["durian","file","carrot"],["apple","dir","durian"]] ["banana","carrot"]
2 [["root","file","readme"]] ["readme"]
3 [["root","dir","a"],["b","file","c"],["another","dir","b"]] []

예시 테스트케이스 설명

1번 테스트케이스 설명

  • 주어진 디렉토리 구조는 아래와 같습니다. 따라서 루트 디렉토리 하위에는 ["banana","carrot"] 파일이 존재합니다.

    root
     ∟ apple (dir)
        ∟ banana (file)
        ∟ durian (dir)
           ∟ carrot (file)
    

2번 테스트케이스 설명

  • 주어진 디렉토리 구조는 아래와 같습니다. 따라서 루트 디렉토리 하위에는 ["readme"] 파일이 존재합니다.

    root
     ∟ readme (file)
    

3번 테스트케이스 설명

  • 주어진 디렉토리 구조는 아래와 같습니다. 따라서 루트 디렉토리 하위에는 아무 파일도 존재하지 않습니다.

    root
     ∟ a (dir)
    another
     ∟ b (dir)
        ∟ c (file)