카테고리 없음
[leetcode 2024/06/22] 71. Simplify Path
미뿌감
2024. 6. 22. 21:37
728x90
1. 접근 방법
path 를 읽어나가면서, "/"가 input으로 들어오지 않으면 directories라는 list에 저장해 둔 값들을 append 해주었다.
만약 save 한 값들이 ".." 이나 "." 처럼 특수한 경우에는 directories에 저장을 하지 않아주고 그에 맞는 처리들을 해주었다.
마지막으로 save에 값이 저장되어 있고, 마지막으로 "/"를 만나지 않았다면 save에 저장되어 있던 값들을 평가할 수 없기 때문에,
path에 "/"를 덧붙여주었다
이후 directories에 저장되어 있는 directory들을 root 경로로 만들어준 후 반환해 주었다.
같이 코딩 테스트하고 있는 친구의 코드를 확인해 보니,
path.split("/")
'/'.join(directories)
이 두 python method를 사용했다면, 더 편리한 코드를 작성할 수 있었을 것 같다.
2. 코드
class Solution:
def simplifyPath(self, path: str) -> str:
def findRoot(path):
save = ""
for s in path:
if s != "/":
save += s
continue
if save == "" or save == ".":
save = ""
continue
if save == "..":
if len(directories):
directories.pop()
save = ""
continue
directories.append(save)
save = ""
return save
def finalRoot(directories):
root = "/"
for directory in directories:
root += directory
root += "/"
if root == "/":
return root
return root[:len(root) - 1]
directories = []
findRoot(path+"/")
return finalRoot(directories)
728x90