500error
[Cos Pro 1급, Python] 2차 1번 : 도서 대여점 운영 본문
반응형
문제
도서 대여점의 만화책과 소설책의 대여 요금이 다음과 같습니다.
구분 | 대여 요금 | 추가 요금 |
만화책 | 첫 2일 500원 | 이후 1일당 200원씩 추가 |
소설책 | 첫 3일 1000원 | 이후 1일당 300원씩 추가 |
만화책과 소설책의 대여 요금을 계산하기 위해 아래 그림과 같이 Book 인터페이스와 ComicBook, Novel 클래스를 작성했습니다.
![](https://blog.kakaocdn.net/dn/pb06j/btsFiM2qc5x/e4TOXoG5GEAo2xfKS59O3K/img.png)
* Book :
* Book은 책의 인터페이스입니다..
* 책은 get_rental_price 함수를 구현해야 합니다.
* get_rental_price 함수는 대여 기간을 매개변수로 받아 대여 요금을 계산합니다.
* Book은 책의 인터페이스입니다..
* 책은 get_rental_price 함수를 구현해야 합니다.
* get_rental_price 함수는 대여 기간을 매개변수로 받아 대여 요금을 계산합니다.
* ComicBook :
* ComicBook은 만화책을 나타내는 클래스이며, Book 인터페이스를 구현합니다.
* get_rental_price 함수는 대여 기간을 매개변수로 받아 만화책의 대여 요금을 계산합니다.
* ComicBook은 만화책을 나타내는 클래스이며, Book 인터페이스를 구현합니다.
* get_rental_price 함수는 대여 기간을 매개변수로 받아 만화책의 대여 요금을 계산합니다.
* Novel :
* Novel은 소설책을 나타내는 클래스이며, Book 인터페이스를 구현합니다.
* get_rental_price 함수는 대여 기간을 매개변수로 받아 소설책의 대여 요금을 계산합니다.
* Novel은 소설책을 나타내는 클래스이며, Book 인터페이스를 구현합니다.
* get_rental_price 함수는 대여 기간을 매개변수로 받아 소설책의 대여 요금을 계산합니다.
대여를 원하는 책들의 종류가 들어있는 리스트 book_types와 대여 기간 day가 매개변수로 주어질 때, 전체 대여 요금을 return 하도록 solution 함수를 작성하려고 합니다. 위의 클래스 구조를 참고하여 주어진 코드의 빈칸을 적절히 채워 전체 코드를 완성해주세요.
코드
from abc import *
class Book(metaclass=ABCMeta):
@abstractmethod
def get_rental_price(self, day):
pass
class ComicBook(Book):
def get_rental_price(self, day):
cost = 500
day -= 2
if day > 0:
cost += day * 200
return cost
class Novel(ComicBook):
def get_rental_price(self, day):
cost = 1000
day -= 3
if day > 0:
cost += day * 300
return cost
def solution(book_types, day):
books = []
for types in book_types:
if types == "comic":
books.append(ComicBook())
elif types == "novel":
books.append(Novel())
total_price = 0
for book in books:
total_price += book.get_rental_price(day)
return total_price
book_types = ["comic", "comic", "novel"]
day = 4
ret = solution(book_types, day)
print("solution 함수의 반환 값은", ret, "입니다.")
반응형
'알고리즘 > 파이썬' 카테고리의 다른 글
[Cos Pro 1급, Python] 2차 3번 : 경품 당첨자를 구해주세요 (0) | 2024.02.28 |
---|---|
[Cos Pro 1급, Python] 2차 2번 : 지하철 기다리기 (0) | 2024.02.26 |
[Cos Pro 1급, Python] 1차 10번 : 주식으로 최대 수익을 내세요 (1) | 2024.02.26 |
[Cos Pro 1급, Python] 1차 9번 : 계단 게임 (1) | 2024.02.26 |
[Cos Pro 1급, Python] 1차 8번 : 누가 당선 되나요 (0) | 2024.02.26 |
Comments