본문 바로가기

알고리즘 풀이

[LeetCode] 71. Simplify Path

https://leetcode.com/problems/simplify-path/

 

Simplify Path - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

유닉스에서 파일 path 구문을 만들어주는 코드를 구현하는 문제 같았다.

stack이라고 힌트를 주어서 쉽게 풀 수 있었다.

 

/**
 * @param {string} path
 * @return {string}
 */
var simplifyPath = function(path) {
    const pathParsedList = path.split('/').filter(item => item);
    const answer = [];
    let moveUpLevelCount = 0;
    
    for (let i = pathParsedList.length - 1; i >= 0; i--) {
        const item = pathParsedList[i];
        
        if (item === '.') continue;
        
        if (item === '..') {
            moveUpLevelCount++;
            continue;
        } else {
            if (moveUpLevelCount) {
                moveUpLevelCount--;
                continue;
            } else {
                answer.push(item);
            }
        }
            
    }
    
    answer.reverse();
    return '/' + answer.join('/');
};