배달음식 전문점 운영을 위해 다음과 같이 DeliveryStore 인터페이스와 PizzaStore, Food 클래스를 작성했습니다.
주문 메뉴가 들어있는 리스트 order_list가 매개변수로 주어질 때, 주문한 메뉴의 전체 가격을 return 하도록 solution 함수를 작성하려고 합니다. 위의 클래스 구조를 참고하여 주어진 코드의 빈칸을 적절히 채워 전체 코드를 완성해주세요.
□ 매개변수 설명
주문 메뉴가 들어있는 리스트 order_list가 solution 함수의 매개변수로 주어집니다.
order_list의 길이는 1 이상 5이하입니댜.
order_list에는 주문하려는 메뉴의 이름들이 문자열 형태로 들어있습니다.
order_list에는 같은 메뉴의 이름이 중복해서 들어있지 않습니다.
메뉴의 이름과 가격은 PizzaStore의 생성자에서 초기화해줍니다.
□ return 값 설명
주문한 메뉴의 전체 가격을 return 해주세요.
# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
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
order_list = ["Cheese", "Pineapple", "Meatball"]
ret = solution(order_list)
print("solution 함수의 반환 값은", ret, "입니다.")
이런 좋은 글을 작성해주셔서 감사합니다.