연산식에서 숫자이면 참으로 판단하고 숫자화 시켜준다
연산자이면 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>
<출처 : 자바스크립트 알고리즘 문제풀이(코딩테스트 대비): 김태원>
참고:
자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의
자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차근차근 배우도록 설계된 강좌입니다., 개발
www.inflearn.com
'JavaScript > JS_Algorithm' 카테고리의 다른 글
[인프런 - JS 알고리즘 문제풀이] Queue 판단1 (0) | 2021.08.06 |
---|---|
[인프런 - JS 알고리즘 문제풀이] stack판단5 (0) | 2021.08.06 |
[인프런 - JS 알고리즘 문제풀이] stack판단3 (0) | 2021.08.05 |
[인프런 - JS 알고리즘 문제풀이] stack판단2 (0) | 2021.08.05 |
[인프런 - JS 알고리즘 문제풀이] stack판단 (0) | 2021.08.05 |