Menu
CoddyTech

Baseball Game

쉬움스택python iconjava iconcpp iconc iconjs icon+10

특이한 게임의 점수를 기록합니다. operations를 왼쪽에서 오른쪽으로 읽으세요. 각 항목은 점수 기록을 변경합니다. "7" 또는 "-2"와 같은 정수는 해당 점수를 추가합니다. "+"는 가장 최근 점수 두 개의 합을 추가하고, "D"는 가장 최근 점수의 두 배를 추가하며, "C"는 가장 최근 점수를 영구적으로 제거합니다.

마지막 연산 후 기록에 남은 점수의 합을 반환하는 calPoints라는 함수를 작성하세요. 기록이 비어 있으면 합은 0입니다.

함수

calPoints(operations: string-array) → integer
operationsstring-array
순서대로 주어지는 연산: 텍스트로 된 정수 또는 "+", "D", "C"
반환값integer
마지막에 기록에 남아 있는 점수의 합계

제약 조건

  • 1 ≤ operations.length ≤ 5000
  • 각 항목은 "+", "D", "C" 또는 -3 × 104 ≤ value ≤ 3 × 104 범위의 십진수 정수입니다.
  • 모든 연산은 유효합니다. "+"는 기록에 점수가 두 개 이상 있을 때만 나오고, "D"와 "C"는 점수가 하나 이상 있을 때만 나옵니다.
  • 기록의 모든 점수와 최종 합계는 32비트 부호 있는 정수에 들어갑니다.

예제

입력
operations = ["4", "-2", "D", "+", "C", "7"]
출력
5
설명
기록은 [4, -2]로 늘어나고, "D"는 -4를 더하며, "+"는 -2 + -4 = -6을 더하고, "C"는 해당 -6을 제거하며, 7은 마지막에 추가됩니다. 기록 [4, -2, -4, 7]의 합은 5입니다.
challenge icon

후속 질문

가장 최근의 "C"를 취소해 취소된 점수를 되돌리는 연산을 O(1) 시간에 어떻게 추가할까요?

코드 초기화
def calPoints(operations):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자

operations = ["4", "-2", "D", "+", "C", "7"]

예상 출력

5