Cos Pro Python 1급 1차 01번 문제풀이
Contents of table:
Topic:
배달음식점 주문메뉴 만들기
Description:
파이썬의 전형적인 메뉴판 만들기 문제를, 클래스를 활용해서 작성할 수 있는가를
테스트 하는 문제이다. 해당 문제는 특히 추상클래스에 대한 이해 여부가 포인트이다.
논리구조는 특별할 것이 없다.
문제내용
DeliveryStore :
- DeliveryStore는 배달 음식점의 인터페이스입니다.
- 배달 음식점은 set_order_list와 get_total_price 함수를 구현해야 합니다.
- set_order_list 함수는 주문 메뉴의 리스트를 매개변수로 받아 저장합니다.
- get_total_price 함수는 주문받은 음식 가격의 총합을 return 합니다.
Food :
- Food는 음식을 나타내는 클래스입니다.
- 음식은 이름(name)과 가격(price)으로 구성되어있습니다.
PizzaStore
- PizzaStore는 피자 배달 전문점을 나타내는 클래스이며 DeliveryStore 인터페이스를 구현합니다.
- menu_list는 피자 배달 전문점에서 주문 할 수 있는 음식의 리스트를 저장합니다.
- order_list는 주문 받은 음식들의 이름을 저장합니다.
- set_order_list 함수는 주문 메뉴를 받아 order_list에 저장합니다.
- get_total_price 함수는 order_list에 들어있는 음식 가격의 총합을 return 합니다.
주문 메뉴가 들어있는 리스트 order_list가 매개변수로 주어질 때, 주문한 메뉴의 전체 가격을 return 하도록 solution 함수를 작성하려고 합니다. 위의 클래스 구조를 참고하여 주어진 코드의 빈칸을 적절히 채워 전체 코드를 완성해주세요.
- 매개변수 설명
주문 메뉴가 들어있는 리스트 order_list가 solution 함수의 매개변수로 주어집니다.
- order_list의 길이는 1 이상 5이하입니댜.
- order_list에는 주문하려는 메뉴의 이름들이 문자열 형태로 들어있습니다.
- order_list에는 같은 메뉴의 이름이 중복해서 들어있지 않습니다.
- 메뉴의 이름과 가격은 PizzaStore의 생성자에서 초기화해줍니다.
- return 값 설명
주문한 메뉴의 전체 가격을 return 해주세요.
- 예시
order_list | return |
---|---|
[“Cheese”, “Pineapple”, “Meatball”] | 51600 |
정답코드
1 | from abc import * # 추상클래스 import |
1 | class DeliveryStore(metaclass=ABCMeta): # 추상클래스에 앞으로 만들 함수목록 지정 |
1 | class Food: # name, price 변수를 만들어줄 class 작성 |
1 | class PizzaStore(DeliveryStore): # (name, price)가 리스트의 요소로 이루어진 menu_list |
1 | def solution(order_list): #order_list를 넣었을 때, total price가 나올 수 있도록 마무리 |