자른 크기가 다른 피자 종류 2개로 2조각 이상일 경우에는 연속된 피자조각을 선택해서 고객이 원하는 크기의 피자를 판매하는 모든 경우의 수 구하기
- 첫째 줄 : 고객이 원하는 피자크기
- 둘째 줄 : 피자A의 조각 개수 m, 피자B의 조각 개수 n
- m개의 줄 : 피자 A의 각 조각의 크기
- n개의 줄 : 피자 B의 각 조각의 크기
[7, 2, 2, 2, 1] 크기의 피자가 있을 때 [7, 2, 2, 2, 1, 7, 2, 2, 2, 1] 원형구조를 선형구조로 만들고 [7, 9, 11, 13, 14, 21, 23, 25, 26] 와 같이 누적 합을 구하면 1에서 n조각까지 선택하는 경우의 수를 쉽게 구할 수 있다.
- 1 조각이면 arr[n + 1] - arr[n]
- [2, 2, 2, 1, 7]
- 2 조각이면 arr[n + 2] - arr[n]
- [4, 4, 3, 8, 9]
- 3 조각이면 arr[n + 3] - arr[n]
- [6, 5, 10, 10, 11]
피자마다 1개 부터 n개까지 고르는 모든 경우의 수에 대해서 크기별 횟수를 맵에 기록한다음 두 종류의 피자의 크기가 합쳐서 고객이 원하는 크기가 되는 경우의 수와 한 종류만 선택해서 되는 경우를 더한다.
- 35번 라인의 두 종류의 피자의 경우의 수를 구할 때 bCount.has(target - i)로 코드를 잘못써서 틀렸다
- 두 종류의 피자의 경우의 수를 구할 때 이중 반복문을 사용해서 시간초과가 발생했다
- 없음