모든 챌린지
보통 0명 해결 정답률 0%

동전 조합의 개수 세기

지정된 동전 단위로 금액을 만드는 방법의 수를 세세요. 각 동전은 무한히 사용할 수 있습니다.

주어진 각 동전 단위를 원하는 만큼 사용하여 정확히 해당 금액을 만드세요. 조합의 순서는 고려하지 않습니다: 각 동전의 개수가 같으면 두 배치는 같은 방법으로 간주합니다. 동전 단위는 모두 서로 다르고 양수입니다.

coin_sums(amount, coins)를 구현하세요.

입력

amount: 만들어야 하는 총 금액입니다.

coins: 사용할 수 있는 서로 다른 동전 단위들의 리스트입니다.

출력

순서에 상관없는 조합의 개수를 반환하세요.

제약 조건

0 ≤ amount ≤ 200. 서로 다른 동전 단위는 0개에서 10개까지 주어지며, 각 단위는 1 이상 200 이하입니다. 모든 경우의 수는 signed 64비트 정수 범위 내에 있습니다. amount가 0일 때는 동전을 하나도 선택하지 않는 1가지 방법이 있습니다.

예시

예시 1
입력:
coins = [1, 2]
amount = 4

예상 출력:
expected = 3
입력:
std::vector<long long> coins = {1, 2};
long long amount = 4;

예상 출력:
long long expected = 3;
입력:
long[] coins = new long[] {1, 2};
long amount = 4;

예상 출력:
long expected = 3;

설명

가능한 조합은 1짜리 4개, 1짜리 2개와 2짜리 1개, 그리고 2짜리 2개입니다.

예시 2
입력:
coins = [2]
amount = 3

예상 출력:
expected = 0
입력:
std::vector<long long> coins = {2};
long long amount = 3;

예상 출력:
long long expected = 0;
입력:
long[] coins = new long[] {2};
long amount = 3;

예상 출력:
long expected = 0;

설명

2단위 동전만으로 만들 수 있는 합은 모두 짝수이므로 3을 만드는 것은 불가능합니다.

참고 자료

이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.

다른 사람의 풀이 보기

커뮤니티 솔루션

아직 공개된 풀이가 없습니다. 문제를 풀고 첫 풀이를 공유하세요.