JavaScript/JS_Algorithm

[인프런 - JS 알고리즘 문제풀이] stack판단4

느리지만 꾸준하게 2021. 8. 5. 20:26

연산식에서 숫자이면 참으로 판단하고 숫자화 시켜준다

연산자이면 stack에서 두개를 꺼내준다. 각 연산자에 맞게 숫자 두개를 처리해주고 

스택에서 남은 숫자를 꺼내준다.

 

아래 코드를 보자.

<body>
    <script>
        function solution(s) {
            let answer;
            let stack = [];
            for (let x of s) {
                if (!isNaN(x)) stack.push(Number(x));
                else {
                    let rt = stack.pop();
                    let lt = stack.pop();
                    if (x === '+') stack.push(lt + rt);
                    else if (x === '-') stack.push(lt - rt);
                    else if (x === '*') stack.push(lt * rt);
                    else if (x === '/') stack.push(lt / rt);
                }
            }
            answer = stack[0];
            return answer;
        }

        let str = "352+*9-";
        console.log(solution(str));
    </script>
</body>

 

 

<출처 : 자바스크립트 알고리즘 문제풀이(코딩테스트 대비): 김태원>

참고:

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4/dashboard

 

자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의

자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차근차근 배우도록 설계된 강좌입니다., 개발

www.inflearn.com