
해당 자료는 유튜브 신찬수 한국외대 교수님 강의를 시청하고 정리했으며
코딩테스트 합격자되기 자바스크립트편 도서를 읽고 추가적으로 정리되어 있습니다. 🙏🏻
강의 내에는 파이썬으로 작성되어있어,
해당 코드는 코딩테스트 합격자되기 도서를 참고해서 작성했습니다.
const stack = []; // 스택 초기화
const maxSize = 10; // 스택의 최대 크기
function isFull(stack) {
return stack.length === maxSize;
}
function isEmpty(stack) {
return stack.length === 0;
}
function push(stack, item) {
if(isFull(stack)) {
console.log('가득 찼습니다');
} else {
stack.push(item);
}
}
function pop(stack){
if(isEmpty(stack)) {
return null;
} else {
return stack.pop();
}
}
isFull : O(1)(상수 시간)isEmpty : O(1)push: O(1)pop: O(1)(코딩테스트 합격자되기 도서 참고)
function solution(str) {
cosnt stack = []; // 하나씩 담을 저장소
for(const s of str) {
if(s === '(') {
stack.push(s);
} else if (s === ')') {
if(stack.length === 0) {
return false;
} else {
stack.pop();
}
}
}
return stack.length === 0;
}
case1 '('가 먼저 있다 => stack에 push
case2 ')'가 왔고 스택이 비어있다? => 바로 false => 예) ')('
case3 ')'가 왔고, 스택이 비어있지 않다 => '('는 있을테니까 열고 닫히게 되었으므로 stack pop!