Stack 웹 브라우저 뒤로가기 앞으로가기 문제
Stack 웹 브라우저 뒤로가기 앞으로가기 풀이
function browserStack(actions, start) {
if(typeof start !== 'string') return false;
let prevStack = [];
let nextStack = [];
let current=start;
actions.forEach(item=>{
// 뒤로가기(prevStack pop)
// 현재 페이지 nextStack push
if(item === -1 && prevStack.length !== 0){
nextStack.push(current);
current = prevStack.pop()
}
// 앞으로 가기(nextStack pop)
// 현재 페이지 prevStack push
else if(item === 1 && nextStack.length !== 0){
prevStack.push(current);
current = nextStack.pop();
}
// 페이지 이동
// prevStack push + nextStack flush
else if(typeof item === 'string'){
prevStack.push(current);
current = item;
nextStack = [];
}
})
return [prevStack, current, nextStack]
}
- 종이에 prevNext , Current, nextStack에 페이지가 어떻게 이동하는지 그려봅니다.
- actions에는 페이지 이동 요소가 배열로 담겨있습니다.
- actions를 순회하면서 1(앞으로가기), -1(뒤로가기), 페이지 이동에 따른 배열 push(), pop() 함수를 사용합니다.
Stack 웹 브라우저 뒤로가기 앞으로가기 후기
스택을 활용한 웹 브라우저 앞으로 가기, 뒤로가기 페이지를 구현하는 문제입니다. 3가지 경우의 수를 고려해서 페이지를 스택에 어떻게 넣고 가져올지를 고민하면 금방 풀 수 있는 문제입니다.
🚀️ 도움이 되셨다면 구독과 좋아요 부탁드립니다 👍️
'Algorithm' 카테고리의 다른 글
Queue 박스 포장 문제 (0) | 2022.10.12 |
---|---|
코딩 테스트 알고리즘 공부 방법 순서 정리 (0) | 2022.10.11 |
[Algorithm] 벨만-포드 알고리즘 (Bellman-Ford) Node.js (0) | 2022.08.05 |
플로이드 워셜 알고리즘 (Floyd-Warshall Algorithm) Node.js (0) | 2022.08.04 |
[Algorithm] 조합 최적화 알고리즘 subsetSum Node.js (0) | 2022.08.02 |
댓글