오늘의 공부 키워드
682 Baseball Game
682 Baseball Game
문제 설명
야구 게임이 시작될 때 기록은 비어 있습니다. 주어진 명령어 리스트를 순서대로 처리하며 점수를 기록합니다. 명령어는 다음과 같습니다:
- 정수 x: 새로운 점수 x를 기록합니다.
- '+': 이전 두 점수의 합을 새로운 점수로 기록합니다.
- 'D': 이전 점수의 두 배를 새로운 점수로 기록합니다.
- 'C': 이전 점수를 무효화하고 기록에서 제거합니다.
모든 명령어를 처리한 후 기록된 모든 점수의 합을 반환합니다.
예시
예시 1
입력: ops = ["5", "2", "C", "D", "+"] 출력: 30
설명:
- "5" -> 기록에 5를 추가, 기록: [5]
- "2" -> 기록에 2를 추가, 기록: [5, 2]
- "C" -> 마지막 점수 2를 제거, 기록: [5]
- "D" -> 마지막 점수 5의 두 배인 10을 추가, 기록: [5, 10]
- "+" -> 마지막 두 점수 5와 10의 합인 15를 추가, 기록: [5, 10, 15]
기록된 점수의 합: 5 + 10 + 15 = 30
예시 2
입력: ops = ["5", "-2", "4", "C", "D", "9", "+", "+"] 출력: 27
설명:
- "5" -> 기록에 5를 추가, 기록: [5]
- "-2" -> 기록에 -2를 추가, 기록: [5, -2]
- "4" -> 기록에 4를 추가, 기록: [5, -2, 4]
- "C" -> 마지막 점수 4를 제거, 기록: [5, -2]
- "D" -> 마지막 점수 -2의 두 배인 -4를 추가, 기록: [5, -2, -4]
- "9" -> 기록에 9를 추가, 기록: [5, -2, -4, 9]
- "+" -> 마지막 두 점수 -4와 9의 합인 5를 추가, 기록: [5, -2, -4, 9, 5]
- "+" -> 마지막 두 점수 9와 5의 합인 14를 추가, 기록: [5, -2, -4, 9, 5, 14]
기록된 점수의 합: 5 + (-2) + (-4) + 9 + 5 + 14 = 27
예시 3
입력: ops = ["1", "C"] 출력: 0
설명:
- "1" -> 기록에 1을 추가, 기록: [1]
- "C" -> 마지막 점수 1을 제거, 기록: []
기록된 점수의 합: 0
해결 방법
- 기록을 저장할 빈 리스트를 생성합니다.
- 주어진 명령어 리스트를 순차적으로 처리합니다.
- 각 명령어에 따라 기록을 업데이트합니다.
- 모든 명령어를 처리한 후 기록된 점수의 합을 반환합니다.
파이썬 코드
from typing import List
class Solution:
def calPoints(self, operations: List[str]) -> int:
record = []
for op in operations:
if op == "C":
record.pop()
elif op == "D":
record.append(2 * record[-1])
elif op == "+":
record.append(record[-1] + record[-2])
else:
record.append(int(op))
return sum(record)
# 예시 실행
solution = Solution()
ops1 = ["5", "2", "C", "D", "+"]
print(solution.calPoints(ops1)) # 출력: 30
ops2 = ["5", "-2", "4", "C", "D", "9", "+", "+"]
print(solution.calPoints(ops2)) # 출력: 27
ops3 = ["1", "C"]
print(solution.calPoints(ops3)) # 출력: 0
이 코드는 주어진 명령어 리스트를 순차적으로 처리하며 기록을 관리하고, 최종적으로 기록된 점수의 합을 계산하여 반환합니다. 예시 입력값에 대해 메서드를 호출하여 올바른 출력이 나오는지 확인할 수 있습니다.
'python' 카테고리의 다른 글
99클럽 코테 스터디 30일차 TIL (0) | 2024.06.27 |
---|---|
99클럽 코테 스터디 29일차 TIL (0) | 2024.06.27 |
99클럽 코테 스터디 27일차 TIL (0) | 2024.06.24 |
99클럽 코테 스터디 26일차 TIL (0) | 2024.06.23 |
99클럽 코테 스터디 25일차 TIL (0) | 2024.06.22 |