[[http://www.yes24.com/Product/Goods/89649360?pid=123487&cosemkid=go15851280284143301&gclid=Cj0KCQjwhqaVBhCxARIsAHK1tiNeGds7qqGpxd7tXxbr3P5KtfxFCB7SK9WrqqafGoEIQsE2OkEGBP0aAvcAEALw_wcB|출처]]
예제 0: 연극 극단의 청구서
다양한 연극을 외주로 받아서 공연하는 극단이 있다고 생각해보자. 공연 요청이 들어오면 연극의 장르와 관객 규모를 기초로 비용을 책정한다. 현대 이 극단은 두 가지 장르, 비극(tragedy)과 희극(comedy)만 공연한다. 그리고 공연료와 별개로 포인트(volume credit)를 지급해서 다음번 의뢰 시 공연료를 할인받을 수도 있다. 일정의 충성도 프로그램인 셈이다.
극단은 공연할 '연극 정보'를 plays.json 파일에 저장한다.
극단은 공연료 '청구서에 필요한 데이터'를 invoices.json 파일에 저장한다.
이 때 공연료 청구서를 출력하는 함수 statement(invoice, plays) -> str
를 Python 으로 작성하시오.
==== 참조 정보 ====
=== 조건 ===
* 비극(tragedy)은 기본 $400 이며, 30명이 넘을 경우 추가인원 1명 당 $10 추가. (예: 31명일 때 $400 + $10)
* 희극(comedy)은 기본 $300 이며, 1명 당 $3 추가. 20명이 넘을 경우 $100 + 추가인원 (21명째부터) 1명 당 $5 추가한다. (예: 21명일 때, $300 + ($3 * 21) + ($100 + ($5 * 1)))
* 포인트는 30명을 초과한 인원 1명 당 1센트이며, 희극인 경우 5명 당 1센트 추가.
* 비극도 희극도 아닌 연극의 경우 에러를 던진다 (raise).
=== plays.json ===
{
"hamlet": {"name": "Hamlet", "type": "tragedy"},
"as-like": {"name": "As You Like It", "type": "comedy"},
"othello": {"name": "Othello", "type": "tragedy"}
}
=== invoices.json ===
[
{
"customer": "BigCo",
"performances": [
{
"playID": "hamlet",
"audience": 55
},
{
"playID": "as-like",
"audience": 35
},
{
"playID": "othello",
"audience": 40
}
]
}
]
=== 청구서 예시 ===
청구 내역 (고객명: BigCo)
Hamlet: $650.00 (55석)
As You Like It: $580.00 (35석)
Othello: $500.00 (40석)
총액: $1,730.00
적립 포인트: 47점