문제: 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을 순회하면서 각 메뉴 길이별로 최대로 주문된 애들만 뽑은 후 오름차순 정렬해주면 됩니다.
'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 |