알고 문제 해결 전략
// 내가 놓친 부분
// 1. ORDERS 의 문자열은 모두 정렬되어 있겠지?
// 2. 문제를 제대로 안읽어서 제한 사항에서
// 마지막 answer 도 정렬값으로 해야 한다는 것이다.
// 1. 각 손님들이 주문한 메뉴를 가지고 조합을 해야한다.
// nCr = n! / r! * (n - r)!
// orders.size() C course.size 만큼 진행.
// 10C1 ,, ~~ 10C5 ~~ 10C10
// 10C5 -> 10!/ 5! * 5!
// 10 9 8 7 6 -> 10만.
// 10만 / 5 4 3 2 1 (120)
// -> 1000 결론
// 2. for문 돌려서 모든 손님들의 숫자까지 진행
// orders.size() : 20
// 3. : 1번과 2번 합하면 200만.
// 4번. 조합으로 만들수 있는 개수 : 10개이므로.
// -> 조합 몇번할지.
// 5번 : 20만.
// 3번과 4번 처리를 하더라도 시간복잡도 문제 없다.
// 문제 해결전략
// 1번 : course에서 몇개의 문자를 가지고 할건지를 가지고 옴
// target이라고 하자.
// 2번 : 각사람마다의 조합을 만들자.
// 만약에 target이 2라고 한다면
// ABCFG 에서 2자리의 조합을 만든다는 것이다.
// unordered_map을 사용할까??
// map의 insert는 최악 1이라고 하므로
// 20만의 시간복잡도 이고,
// 문자열 10줄은 10바이트 이고,
// 200만 바이트의 공간이 필요하지 않나?
// 1MB 는 100만 글자이므로
// 2MB 이다.
//진짜 결론:공간 복잡도 때문에 문제가 생길 확률은 0%에 가깝습니다. C++은 메모리 관리가 워낙 타이트해서 사용자님이 걱정하시는 것보다 훨씬 적은 용량으로 이 문제를 해결할 수 있습니다.
구글링 정리



언어에 약하다.

