https://leetcode.com/problems/simplify-path/
유닉스에서 파일 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('/');
};
'알고리즘 풀이' 카테고리의 다른 글
[LeetCode] 416. Partition Equal Subset Sum (0) | 2022.10.09 |
---|---|
[LeetCode] 61. Rotate List (0) | 2022.07.17 |
[LeetCode] 푸는중 103. Binary Tree Zigzag Level Order Traversal (0) | 2022.02.03 |
[자료구조] Linked List (연결 리스트) (0) | 2021.06.01 |
[자료구조 학습] 1. Linked List 정리 (0) | 2020.12.04 |