폴더에 입력할 경로가 있는 로그가 있다고 가정하면 -
와 같은 다른 기호가 있을 수 있습니다.-
"../" :현재 폴더에서 상위 폴더로 이동합니다. (메인 폴더라면 위치를 바꾸지 마세요.)
-
"./" :현재 폴더에 남습니다.
-
"x/" :x라는 이름의 하위 폴더로 이동합니다.
로그에서 중지한 마지막 폴더에서 기본 폴더로 돌아오는 데 필요한 최소 작업 수를 찾아야 합니다.
따라서 입력이 logs =["Dir1/","Dir2/","../","Dir2/","Dir3/","./"]인 경우 출력은 3피>
이미지에서 볼 수 있듯이 집에 도착하려면 세 번 뒤로 물러나야 합니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
stk :=새 목록
-
로그의 각 항목 i에 대해 수행
-
i가 "../"와 같고 크기가 stk> 0이면
-
stk에서 마지막 요소 삭제
-
-
그렇지 않으면 내가 "./"와 같지 않고 "../"와 같지 않으면
-
stk 끝에 i 삽입
-
-
그렇지 않으면
-
다음 반복으로 이동
-
-
-
stk의 항목 수를 반환
예제(파이썬)
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(logs): stk = [] for i in logs: if i == "../" and len(stk) > 0: stk.pop() elif i != "./" and i != "../": stk.append(i) else: continue return len(stk) logs = ["Dir1/","Dir2/","../","Dir2/","Dir3/","./"] print(solve(logs))
입력
["Dir1/","Dir2/","../","Dir2/","Dir3/","./"]
출력
3