반응형
#include <iostream>
#include <string>
#include <sstream>
#include <stack>
using namespace std;
int calc(int op1, int op2, string op){
if(!op.compare("+")){
return op1+op2;
}
if(!op.compare("-")){
return op1-op2;
}
if(!op.compare("*")){
return op1*op2;
}
if(!op.compare("/")){
return op1/op2;
}
cout << "ERROR!";
return -1;
}
int main() {
// your code goes here
stack<string> stack;
string str = string("( ( ( 2 * 5 ) - ( 1 * 2 ) ) / ( 11 - 9 ) ) \n");
stringstream stream(str);
string token;
while (stream >> token){
cout << token << " ";
if(!token.compare(")")){
int op2 = stoi(stack.top());
stack.pop();
string op = stack.top();
stack.pop();
int op1 = stoi(stack.top());
stack.pop();
stack.pop();
stack.push(to_string(calc(op1, op2, op)));
continue;
}
stack.push(token);
}
cout << endl << "Result : " << stack.top();
return 0;
}
반응형
'컴퓨터 > C++' 카테고리의 다른 글
| complex class 구현 (0) | 2016.04.27 |
|---|---|
| 대소문자 변경하기 (0) | 2016.04.18 |
| Merge Sort 구현 (0) | 2016.04.17 |
| *없이 두 정수 곱하기 (0) | 2016.04.13 |
| Stack 기반 미로 찾기(DFS) (0) | 2015.10.27 |