Study with book/Algorithms

[프로그래머스] 메뉴 리뉴얼


 

 

[메뉴 리뉴얼] programmers.co.kr/learn/courses/30/lessons/72411

 

 

풀고 느낀점

이전부터 조합문제를 많이 풀고 있어서 그런지 생각보다 많이 어렵진 않았습니다. orders 배열로 들어온 문자열 배열에 대해서 나올 수 있는 조합을 구합니다. 예를 들어 1번 손님의 경우 [] [A] [B] [C] [F] [G] [A, B] [A, C] ......   이렇게 나올 것입니다. 2번, 3번 손님도 마찬가지 입니다. 그리고 course 배열을 순회 돌면서 아까 구한 조합에서 course 개수랑 같은 개수를 가진 조합을 빼냅니다. course 의 값이 2이면, 1번 손님의 경우는 [A, B] [A, C] [A, F] .... 가 됩니다. 그리고 2번 손님, 3번 손님으로도 마찬가지로 빼냅니다. 이렇게 개수가 2개인 조합들 중 가장 많이 카운팅된 배열을 리턴하면 됩니다. 저는 배열을 정렬한 뒤 문자열로 만들어서 카운팅했습니다. 아마 조합 공부를 하지 않았으면, 시간이 많이 걸려서 풀었을 것 같습니다.