Stack

알고리즘/문제풀이

[JavaScript][node.js] 백준 1918 후위 표기식

문제 https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 풀이과정 💡 아이디어 ✅ 먼저 계산되어야 하는 부호가 앞에 나와야 한다. A*(B+C) ➡️ ABC+* ✅ 즉, 부호를 스택에 순서대로 담았다가, ✅ 스택의 가장 위 부호보다 나중에 계산되어야 하는 부호가 나오면 스택에 담긴 부호들을 처리한다. ✅ 이때 연산의 우선순위는, 괄호 > * / > + - > 앞에 온 부호 ✅ 앞에 온 부호가 항상 스택의 밑에 깔리므로(FILO), 우선순위를 무..

알고리즘/문제풀이

[JavaScript][node.js] 백준 1406 에디터

문제 https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 풀이과정 💡 아이디어 실제 cursor 변수를 다룬다고 생각하지 말고, cursor의 왼쪽과 오른쪽에 있어야 할 문자열을 stack으로 관리한다. 명령어 L : 커서를 왼쪽으로 한 칸 옮김 (커서가 문장의 맨 앞이면 무시됨) if (c === 'L') { if (cursor_left.length) { const top = cursor_left.pop(); cursor_right.push(top..

알고리즘/자료구조

[JS] 자바스크립트 스택 구현하기

1. 배열로 스택 구현하기 그냥 JS 배열 메서드를 사용하면 스택을 활용할 수 있다. 2. 객체로 스택 구현하기 class Stack { #storage; constructor() { this.#storage = {}; this.length = 0; } push(item) { this.#storage[this.length++] = item; } pop() { if (!this.length) return; const item = this.#storage[--this.length]; delete this.#storage[this.length - 1]; return item; } } 3. 링크드리스트로 스택 구현하기 push(item) class Node { constructor(data) { this.dat..

햄oOoOo
'Stack' 태그의 글 목록