자판기
자판기를 표현하는 Vending 클래스를 완성하려고 한다.
자판기에는 처음에 음료가 2개 들어 있다.
음료 1개의 가격은 입력으로 주어진다.
자판기는 다음 두 가지 동작을 수행할 수 있다.
- 동전을 넣는다.
- 버튼을 누른다.
동전을 넣으면 자판기에 들어간 금액이 증가한다.
버튼을 눌렀을 때는 다음 규칙에 따라 처리한다.
- 남은 음료가 0개라면
no drink를 출력한다. - 남은 음료가 있지만, 들어간 금액이 음료 가격보다 적다면
more money를 출력한다. - 남은 음료가 있고, 들어간 금액이 음료 가격 이상이라면
drink를 출력한다.- 이때 남은 음료 수가 1 감소한다.
- 들어간 금액에서 음료 가격만큼 차감된다.
아래에 제시된 코드가 올바르게 동작하도록 Vending 클래스를 작성하시오.
입력 설명
첫째 줄에 명령의 개수 n과 음료 1개의 가격 c가 공백으로 구분되어 주어진다.
둘째 줄부터 n개의 줄에 걸쳐 명령이 주어진다.
명령은 다음 두 가지 형식 중 하나이다.
1 x: 동전x원을 넣는다.2: 버튼을 누른다.
출력 설명
버튼을 누르는 명령이 실행될 때마다 결과를 한 줄에 하나씩 출력한다.
제한
1 <= n <= 1001 <= c <= 100001 <= x <= 10000- 입력으로 주어지는 값은 모두 정수이다.
예제 입력 1
6 500
1 300
2
1 200
2
2
2
예제 출력 1
more money
drink
more money
more money
예제 설명 1
처음 자판기에는 음료가 2개 들어 있고, 음료 가격은 500원이다.
처음에 300원을 넣고 버튼을 누르면 금액이 부족하므로 more money가 출력된다.
이후 200원을 더 넣으면 들어간 금액은 500원이 된다.
버튼을 누르면 음료를 살 수 있으므로 drink가 출력되고, 남은 음료 수는 1개가 된다.
그 뒤에는 들어간 금액이 0원이므로 버튼을 누를 때마다 more money가 출력된다.
예제 입력 2
7 1000
1 1000
2
1 1000
2
1 1000
2
2
예제 출력 2
drink
drink
no drink
no drink
rear
n, c = map(int, input().split())
v = Vending(c)
for _ in range(n):
l = list(map(int, input().split()))
if l[0] == 1:
v.insert(l[1])
else:
v.push()
코멘트