배달음식 전문점 운영을 위해 다음과 같이 DeliveryStore 인터페이스와 PizzaStore, Food 클래스를 작성했습니다.
DeliveryStore :
Food :
PizzaStore
주문 메뉴가 들어있는 리스트 order_list가 매개변수로 주어질 때, 주문한 메뉴의 전체 가격을 return 하도록 solution 함수를 작성하려고 합니다. 위의 클래스 구조를 참고하여 주어진 코드의 빈칸을 적절히 채워 전체 코드를 완성해주세요.
주문 메뉴가 들어있는 리스트 order_list가 solution 함수의 매개변수로 주어집니다.
주문한 메뉴의 전체 가격을 return 해주세요.
order_list | return |
---|---|
["Cheese", "Pineapple", "Meatball"] | 51600 |
from abc import *
class DeliveryStore(metaclass=ABCMeta):
@abstractmethod
def set_order_list(self, order_list):
pass
@abstractmethod
def get_total_price(self):
pass
class Food:
def __init__(self, name, price):
self.name = name
self.price = price
class PizzaStore@@@:
def __init__(self):
menu_names = ["Cheese", "Potato", "Shrimp", "Pineapple", "Meatball"]
menu_prices = [11100, 12600, 13300, 21000, 19500];
self.menu_list = []
for i in range(5):
self.menu_list.append(Food(menu_names[i], menu_prices[i]))
self.order_list = []
def @@@:
for order in order_list:
self.order_list.append(order)
def @@@:
total_price = 0
for order in self.order_list:
for menu in self.menu_list:
if order == menu.name:
total_price += menu.price
return total_price
def solution(order_list):
delivery_store = PizzaStore()
delivery_store.set_order_list(order_list)
total_price = delivery_store.get_total_price()
return total_price
#The following is code to output testcase.
order_list = ["Cheese", "Pineapple", "Meatball"]
ret = solution(order_list)
#Press Run button to receive output.
print("Solution: return value of the function is", ret, ".")
from abc import *
class DeliveryStore(metaclass=ABCMeta):
@abstractmethod
def set_order_list(self, order_list):
pass
@abstractmethod
def get_total_price(self):
pass
class Food:
def __init__(self, name, price):
self.name = name
self.price = price
class PizzaStore(DeliveryStore):
def __init__(self):
menu_names = ["Cheese", "Potato", "Shrimp", "Pineapple", "Meatball"]
menu_prices = [11100, 12600, 13300, 21000, 19500];
self.menu_list = []
for i in range(5):
self.menu_list.append(Food(menu_names[i], menu_prices[i]))
self.order_list = []
def set_order_list(self, order_list):
for order in order_list:
self.order_list.append(order)
def get_total_price(self):
total_price = 0
for order in self.order_list:
for menu in self.menu_list:
if order == menu.name:
total_price += menu.price
return total_price
def solution(order_list):
delivery_store = PizzaStore()
delivery_store.set_order_list(order_list)
total_price = delivery_store.get_total_price()
return total_price
#The following is code to output testcase.
order_list = ["Cheese", "Pineapple", "Meatball"]
ret = solution(order_list)
#Press Run button to receive output.
print("Solution: return value of the function is", ret, ".")
from abc import *
class DeliveryStore(metaclass=ABCMeta):
@abstractmethod
def set_order_list(self, order_list):
pass
@abstractmethod
def get_total_price(self):
pass
class Food:
def __init__(self, name, price):
self.name = name
self.price = price
class PizzaStore(DeliveryStore):
def __init__(self):
self.menu_names = ["Cheese", "Potato", "Shrimp", "Pineapple", "Meatball"]
self.menu_prices = [11100, 12600, 13300, 21000, 19500]
self.menu_list = []
for menu in range(len(self.menu_names)):
self.menu_list.append(Food(self.menu_names[menu], self.menu_prices[menu]))
self.order_list = []
def set_order_list(self, order_list):
self.order_list = order_list
def get_total_price(self):
total_price = 0
for order in self.order_list:
for menu in self.menu_list:
if order == menu.name:
total_price += menu.price
return total_price
def solution(order_list):
pizzaStore = PizzaStore()
pizzaStore.set_order_list(order_list)
total_price = pizzaStore.get_total_price()
return total_price
#The following is code to output testcase.
order_list = ["Cheese", "Pineapple", "Meatball"]
ret = solution(order_list)
#Press Run button to receive output.
print("Solution: return value of the function is", ret, ".")
단순한 추상 클래스 문제였다.
파이썬에서 추상 클래스를 만드려면 abc 모듈을 import 하는 것을 기억하자.
또한 추상 클래스 이름(metaclass=ABCMeta), @abstractmethod도 기억하자.
소중한 정보 잘 봤습니다!