지갑에 액면가가 적힌 상품권이 여러 장 들어 있습니다. cards[i]는 i번째 상품권의 액면가입니다.
계산대에서 상품권을 정확히 k장 내밀어 합계가 정확히 target이 되게 하려고 합니다.
가능한 조합이 몇 가지인지 반환하세요.
[9,9,9]에서 2장을 고르는 방법은 3가지입니다.function solution(cards: number[], k: number, target: number): number| cards | k | target | 반환 | 설명 |
|---|---|---|---|---|
[2,3,3,5,7] |
2 |
8 |
2 |
3+5 조합이 3의 장수만큼 두 가지 |
[1,4,6,2,5] |
3 |
11 |
2 |
1+4+6, 4+2+5 |
[9,9,9] |
2 |
18 |
3 |
같은 액면가도 다른 장으로 구분 |
[1,2,3] |
4 |
6 |
0 |
장수가 모자람 |
cards.length ≤ 20cards[i] ≤ 100k ≤ 20 (cards.length보다 클 수 있습니다)target ≤ 2,000시간 복잡도 목표: O(2^N) 이내 — 가지치기를 곁들인 조합 탐색
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.