본문 바로가기
Algorithm/Programmers

[PRGRMS]72411번: 메뉴 리뉴얼

by BAYABA 2022. 3. 15.

문제: https://programmers.co.kr/learn/courses/30/lessons/72411 


시뮬레이션 문제입니다.

 

놓치기 쉬운 조건은 아래 두 가지입니다.

  • 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로 구성하기로 했습니다. 
  • 만약 가장 많이 함께 주문된 메뉴 구성이 여러 개라면, 모두 배열에 담아 return 하면 됩니다.

 

예를 들어, 요리 2개 코스 후보가 AB -2번 주문, AC - 3번 주문, AD - 3번 주문 이렇게 주어진 경우

AC, AD만 정답에 포함됩니다. 그러므로 AB도 2명이상으로부터 시켰다고 정답에 포함시키면 안되겠습니다.

 

1. 임의의 메뉴 2개 String 선택 (두 String 중 길이가 짧은 String을 A, 길이가 긴 String을 B라 하겠습니다.)

2. 두 메뉴중 길이가 짧은 A를 가지고 생성할 수 있는 모든 조합 쌍을 생성

3. 2번으로부터 생성한 조합쌍이 B에 포함되는 지 판단합니다. 

4. 포함된다면 생성한 조합쌍과 조합쌍이 나온 갯수를 Map으로 저장합니다.

5. 모든 정답 후보가 저장된 Map을 순회하면서 각 메뉴 길이별로 최대로 주문된 애들만 뽑은 후 오름차순 정렬해주면 됩니다.


코드: https://github.com/cotchan/algorithm/blob/main/PRGRMS/%EB%A9%94%EB%89%B4%20%EB%A6%AC%EB%89%B4%EC%96%BC.java

'Algorithm > Programmers' 카테고리의 다른 글

[PRGRMS]92341번: 주차 요금 계산  (0) 2022.03.17
[PRGRMS]42747번: H-Index  (0) 2022.03.17
[PRGRMS]49191번: 순위  (0) 2022.03.15
[PRGRMS]1844번: 게임 맵 최단거리  (0) 2022.03.11
[PRGRMS]72412번: 순위 검색  (0) 2022.03.10