오늘은 점심 메뉴를 추천해주는 프로그램을 만들어 보겠습니다.
추천 프로그램은 무작위로 한식, 양식, 일식 중 한 가지를 선택합니다. 그리고 해당 카테고리에 맞는 메뉴들을 낮은 가격순으로 오름차순 정렬해서 보여줍니다.
이때, 다음과 같은 조건이 붙습니다.
Recommender
에서 수행한다.Food
를 상속하는 KoreanFood
, WesternFood
, JapaneseFood
클래스를 만들어 음식과 가격 정보를 저장한다.메뉴와 가격 리스트는 각각 다음과 같습니다. 이때 메뉴명은 중복이 없다고 가정합니다.
menu_list = [
"한식-김치볶음밥",
"일식-초밥",
"한식-김치찌개",
"한식-콩나물국밥",
"양식-스파게티",
"한식-비빔밥",
"양식-스테이크",
"양식-햄버거",
"한식-칼국수",
"한식-삼계탕",
"일식-돈까스",
"일식-우동",
]
prices = [6000, 9000, 7000, 6000, 7000, 6000, 10000, 4000, 6000, 10000, 9000, 8000]
메뉴와 가격은 같은 순서로 두 리스트에 나누어 들어있습니다. 이 두 리스트로부터 각각의 카테고리별 메뉴/가격 정보를 묶어서 분리시켜야합니다. 예를 들어 아래와 같이 딕셔너리로 분리할 수 있겠죠? 물론 리스트나 다른 자료형으로 분리해도 됩니다.
<aside> 💡 메뉴 이름에서 카테고리 이름(한식, 일식, 양식)이 빠져있다는 걸 눈치채셨나요?
</aside>
korean_menu = {"김치볶음밥": 6000, ...}
japanese_menu = {"초밥": 9000, ...}
western_menu = {"스파게티": 6000, ...}
이제 분리된 카테고리별 메뉴/가격 정보로부터 데이터를 담을 클래스들을 구현해 보겠습니다. 먼저 각 메뉴별 클래스의 베이스 클래스인 Food
클래스를 작성합니다. 해당 클래스는 생성자에서 메뉴 정보를 받아, sort_menus
라는 메소드에서 메뉴를 가격순으로 오름차순 정렬합니다.