자료구조대 출동

야 나 개 ·2021년 11월 17일
0

스택

개념

가장 최근에 들어간 자료부터 꺼내는 구조

입구와 출구가 같은 구조
Last in first out 이라고 한다.
가장 최신꺼부터 꺼낸다는 의미
[1,2,3]
3
2
1

사용법

push를 해서 POP을 한다.

문제 1

괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다.
(())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다.
▣ 입력설명
첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다.
▣ 출력설명
첫 번째 줄에 YES, NO를 출력한다.
▣ 입력예제 1 (()(()))(()
▣ 출력예제 1 NO

풀이법

여는 괄호를 만나면 배열에 넣어주고
닫는 괄호를 만나면 배열에서 POP을 해준다.

코드

     function solution(s){
            let answer="YES";
            let stack = [];
            for(let x of s){
                if(x === "("){
                    stack.push(x);
                } else {
                    if(stack.length === 0) return 'NO'
                    stack.pop();
                }
            }
            if(stack.length > 0) return 'NO'
            console.log(stack)
            return answer;
        }
        
        let a="()))";
        console.log(solution(a));

개념

먼저들어간것을 먼저 빼주는 구조이다.
[1,2,3]
1
2
3

이런 구조가 큐 라고 한다.

스택프레임

스택 프레임(Stack Frame)이란 함수가 호출될 때, 그 함수만의 스택 영역을 구분하기 위하여 생성되는 공간이다. 이 공간에는 함수와 관계되는 지역 번수, 매개변수가 저장되며, 함수 호출 시 할당되며, 함수가 종료되면서 소멸한다.

profile
야 나도 개발자 될 수 있어

0개의 댓글