알고리즘/programmers

[Programmers] 메뉴 리뉴얼

꾸준함. 2021. 12. 9. 23:54

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/72411

 

코딩테스트 연습 - 메뉴 리뉴얼

레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서

programmers.co.kr

완전 탐색법을 이용해 푸는 문제였습니다.

 

알고리즘은 아래와 같습니다.

1. 각 주문마다 길이가 2 이상인 모든 조합을 만들어봅니다.

2. 해당 조합이 몇 번 등장했는지 map 자료구조를 통해 표시합니다.

2.1 2번에서 구한 조합 크기 내 가장 많이 시킨 조합을 구하는 것이 문제의 의도이므로 max 함수를 통해 같은 조합 크기 중 조합이 등장한 최대 횟수를 갱신해줍니다.

2.2 menus[조합 크기][조합 등장 횟수] 벡터에 해당 조합을 추가해줍니다.

3. 1번 ~ 2번 과정을 모든 주문에 대해 진행해줍니다.

4. course 벡터를 순회하며 2명 이상의 손님이 주문한 최대 조합을 구해주고 정렬을 한 뒤 반환해줍니다.

 

 

개발환경:Visual Studio 2017

 

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형