""" 0682.1 - Solution 1 - Stack Simulation """
#####################################################################################
# Imports
#####################################################################################
from typing import List
#####################################################################################
# Classes
#####################################################################################
class Solution:
"""Solution Class"""
def calPoints(self, operations: List[str]) -> int:
"""Baseball Game Function"""
stack = []
for op in operations:
if op == "+":
stack.append(stack[-1] + stack[-2])
elif op == "D":
stack.append(2 * stack[-1])
elif op == "C":
stack.pop()
else:
stack.append(int(op))
return sum(stack)
#####################################################################################
# Functions
#####################################################################################
def testcase():
"""Test Function"""
print(Solution().calPoints(["5", "2", "C", "D", "+"])) # 30
print(Solution().calPoints(["5", "-2", "4", "C", "D", "9", "+", "+"])) # 27
print(Solution().calPoints(["1", "C"])) # 0
#####################################################################################
# Main
#####################################################################################
if __name__ == "__main__":
testcase()