https://leetcode.com/problems/evaluate-reverse-polish-notation/description/
주어진 string 배열은 아래의 연산을 의미한다.
결과를 구하라.
전형적인 stack 구조의 문제.
해결의 키는 중간 값의 결과를 항상 다시 그 stack에 넣어야 함에 있다.
코드
더보기
int evalRPN(vector<string>& tokens)
{
stack<int> sBuff;
for (int q = 0; q < tokens.size(); ++q)
{
string cur = tokens[q];
if (cur == "+")
{
int v2 = sBuff.top(); sBuff.pop();
int v1 = sBuff.top(); sBuff.pop();
sBuff.push(v1 + v2);
}
else if (cur == "-")
{
int v2 = sBuff.top(); sBuff.pop();
int v1 = sBuff.top(); sBuff.pop();
sBuff.push(v1 - v2);
}
else if (cur == "*")
{
int v2 = sBuff.top(); sBuff.pop();
int v1 = sBuff.top(); sBuff.pop();
sBuff.push(v1 * v2);
}
else if (cur == "/")
{
int v2 = sBuff.top(); sBuff.pop();
int v1 = sBuff.top(); sBuff.pop();
sBuff.push(v1 / v2);
}
else
sBuff.push(atoi(cur.c_str()));
}
return sBuff.top();
}
결과
'Leetcode > NeetCode' 카테고리의 다른 글
[stack][Medium] 739. Daily Temperatures (0) | 2024.07.11 |
---|---|
[stack][Medium] 22. Generate Parentheses (0) | 2024.07.11 |
[stack][Medium] 155. Min Stack (0) | 2024.07.11 |
[24.07.10] I think I'm getting better. (0) | 2024.07.11 |
[stack][Easy] 20. Valid Parentheses (0) | 2024.07.10 |