문제
후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.
만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 12입니다.
입력
첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다.
식은 1~9의 숫자와 +, -, *, / 연산자로만 이루어진다.
출력
연산한 결과를 출력합니다.
예제입력
▣ 입력예제 1
352+*9-
▣ 출력예제 1
12
🙌🏻 문제 이해하기
문제를 해결하기 위해 어떤 방법을 사용해야하는지 생각해보자 :)
- 문자열로 받은 argument를 하나씩 확인해야한다. ➡️ split 메서드 사용하여 배열로 만들기
- 반복문으로 순회를 하면서 숫자를 만나면 stack에 넣는다.
- 연산자를 만나면 stack에서 2개의 값을 꺼내 계산한다.
- 계산한 값을 다시 stack에 넣는다.
- 반복문이 종료되었을 때 계산된 값을 반환한다.
✅ solution
1 | function solution(s) { |
😎 Review
이번 문제는 어떻게 풀지만 알고 있으면 쉽게 구현할 수 있는 문제인 것 같았다.
풀면서 오류를 범했던 것이 있다면 stack에 넣을 값을 숫자로 변환하지 않고 그대로 넣어서 결과값이 147이 나와 깜짝 놀랬다는 것… (앗차차 나의 실수😃)