[LeetCode] 71. Simplify Path

Chobby·2024년 9월 10일
1

LeetCode

목록 보기
107/194

스택의 개념을 이해하면 쉽게 풀이가 가능한 문제이다.

/를 기준으로 split하게되면, 중복된 /를 효과적으로 제거할 수 있고 배열 요소를 순회하며 상위 이동과 디렉터리 이동만 판단하면 완료된다.

😎풀이

function simplifyPath(path: string): string {
    const parts = path.split('/');
    const stack = [];

    for (const part of parts) {
        // 현재 경로 및 '//', '///' 과 같은 경우 생략
        if (part === '' || part === '.') continue
        
        if (part === '..') {
            // 상위로 이동하므로 pop
            stack.pop();
        } else {
            // 디렉터리 이므로 push
            stack.push(part);
        }
    }

    return '/' + stack.join('/');
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글