Description
우리들이 흔히 사용을 하는 파일 탐색기에서 파일을 검색을 하거나 파일 목록을 볼 때 자주 이용 한다.
그래서 파일 탐색기가 얼마나 대단하고 위대하게 잘 짜여진 프로그램인지 알기 위하여 직접 만들어서, 동작 원리에 대해서 알아 보도록 하자.
"차차는 고등학교 2학년 때 만들던 Exten Drive(드라이브 통합 프로그램)을 개발 하다가 폴더, 파일을 관리를 해야 했었다.
그때 차차는 트리 구조, 스택에 관한 개념이 없어서 심플하게 HashMap을 이용을 했었는데 Key값으로는 경로, Value로는 파일 목록을 했더니 폴더 삭제, 폴더 이동에 큰 문제가 발생 했다.
그래서 해결 하기 위해 트리란 구조를 사용 해야 한다."
조건 :
파일 경로 및 파일 내부 구조는 A - Z 순으로 정렬이 되어 있어야 한다.
폴더 목록을 출력을 다 하였다면 마지막에 엔터를 한번더 출력 해줘야 한다.
모든 경로의 값은 Windows형태, 즉 '\' 이 아닌 Unix 기반 '/' 으로 들어온다.
폴더 이름의 값은 중복되지 않으며, 중복해서 만들지도 않는다.
Input
첫줄에 TestCase의 수 (0 < TestCase < 1000)이 입력이 된다.
둘째줄에는 입력 되는 경로의 값(0 < In < 1000), 출력 할 횟 수(0 < Out < 1000) 가 입력이 된다.
In 번 만큼 경로가 입력이 된다.
Out번 경로를 입력을 받고 해당 경로에 있는 파일 구조를 출력 한다.
Output
젤 위에 있는 폴더를 출력하고 젤 위에 있는 폴더 안에 있는 폴더 목록을 출력 한다.
Output에 들어가는 입력값은 출력할 폴더의 위치이다.
해당 폴더가 없는 경우 "Error : Path" 라 출력 한다.
해당 폴더가 비어있는 경우도 마찬가지로 "Blank Folder"라 출력한다
그외 사안은 예제 출력을 확인 한다.
1
5 3
/a/b/c/d
/a/b/e/f
/a/a/c/e/f
/g/g/a/w/e
/c/d/f/g
/
/a
/b
-> a
--> a
---> c
----> e
-----> f
--> b
---> c
----> d
---> e
----> f
-> c
--> d
---> f
----> g
-> g
--> g
---> a
----> w
-----> e
-> a
--> c
---> e
----> f
-> b
--> c
---> d
--> e
---> f
Error : Path
HINT
테스트 케이스를 만드는게 세상 제일 어렵다.
테스트 케이스 : 4시간
코드 작성 : 1시간
ps. 최적화를 나름 해주었다.
문제를 작정하고 냈다.