티스토리 뷰
728x90
문제
n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다.
사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다.
입력
첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 경우의 수를 출력한다. 경우의 수는 2^31보다 작다.
코드
#include <iostream>
using namespace std;
int N;
int K;
int coin[101];
long long money[100001];
void init()
{
int i, j;
money[0] = 1;
for (i = 0; i < N; i++)
{
for (j = coin[i]; j <= K; j++)
{
money[j] += money[j - coin[i]];
}
}
}
int main()
{
int i;
cin >> N >> K;
for (i = 0; i < N; i++)
{
cin >> coin[i];
}
init();
cout << money[K] << endl;
return 0;
}
프로그래머스의 거스름돈과 같은 문제이다.
[프로그래머스] 거스름돈 / C++
문제 설명 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서
peachh.tistory.com
링크
2293번: 동전 1
첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다.
www.acmicpc.net
inbdni/Baekjoon
Contribute to inbdni/Baekjoon development by creating an account on GitHub.
github.com
728x90
'Coding Test > Baekjoon' 카테고리의 다른 글
[백준] 17837번 - 새로운 게임 2 / C++ (0) | 2021.02.26 |
---|---|
[백준] 17780번 - 새로운 게임 / C++ (0) | 2021.02.26 |
[백준] 10422번 - 괄호 / C++ (0) | 2021.02.23 |
[백준] 12869번 - 뮤탈리스크 / C++ (0) | 2021.02.19 |
[백준] 1495번 - 기타리스트 / C++ (0) | 2021.02.18 |