체크 카드
우측 버튼을 눌러 기기를 연결해주세요.
문제 정보
체크 카드
쉬움
유형
프로그래밍
배점
100
참여자
38
정답률
78.9%
0
0


문제


체크 카드를 사용할 때 가장 중요한 것은 결제가 항상 가능하도록 계좌 잔고를 항상 채워둬야 한다는 점이다. 구름이는 올바른 소비 습관을 만들기 위해서 지난달 구름이가 카드를 통해서 얼마를 입금하고 결제하였는지 확인하려고 한다.

구름이가 쓰는 체크 카드는 depositpayreservation의 세 가지 기능을 가지고 있다.

  • deposit: 주어진 금액만큼 계좌에 돈이 들어온다.
  • pay: 주어진 금액만큼 계좌에서 돈이 결제된다. 단, 계좌의 현재 잔액이 주어진 금액보다 적다면 결제되지 않는다.
  • reservation: 주어진 금액만큼 계좌에서 돈이 결제된다. 단, 계좌의 현재 잔액이 주어진 금액보다 적거나, 대기 목록에 다른 거래가 있다면 결제되지 않고 대기 목록의 맨 뒤에 추가된다.
  • 대기 목록에 있는 거래들은 대기 목록에 들어간 순서대로 결제가 가능해지는 즉시 해당 거래의 금액만큼 계좌에서 금액이 차감된 뒤 대기 목록에서 삭제된다. 

처음에 구름이의 계좌에 들어있던 금액과 지난달 구름이의 거래 내역이 주어졌을 때, 주어진 모든 거래가 진행된 뒤에 구름이의 계좌에 남아있는 금액을 출력하시오. 거래가 완료되지 않고 대기 목록에 남아있는 경우도 거래가 진행된 것으로 본다.


입력


첫째 줄에는 처음에 구름이의 계좌에 들어 있던 잔액 과 지난 달 구름이의 거래 횟수 이 공백을 두고 주어진다.
다음 개의 줄에는 구름이의 거래 내역이 시간 순서대로 주어진다. 거래 내역은 유형과 금액이 공백을 두고 주어진다.

  • 거래 유형은 depositpayreservation 의 세 문자열 중 하나로 주어진다.
  • 거래 금액은  이상  이하의 정수이다.
  • 입력에서 주어지는 모든 수는 정수이다.


출력


주어진 모든 거래가 진행된 뒤에 구름이의 계좌에 남아있는 금액을 출력한다.

입/출력 예시
:
공백
:
줄바꿈
:
예시 1
입력
06
deposit10
pay5
reservation5
reservation5
pay5
deposit10
출력
5
예시 2
입력
06
deposit10
reservation20
pay5
deposit10
deposit10
reservation6
출력
5
⋇ 입출력 형식을 잘 지켜주세요
Q&A
누구나 질문하고 답변할 수 있는 Q&A입니다. 문제를 풀며 어려웠던 부분에 대해 질문해보세요.
이 문제에 관한 질문 (0)