퍼펙트코딩
퍼펙트코딩
퍼펙트코딩
전체 방문자
오늘
어제
  • 분류 전체보기 (35)
    • C++ (4)
    • Phython (1)
    • C (2)
    • 프로그램 에러 (3)
    • 공부 정리글 (1)
      • 자료구조 (0)
    • 백준 (23)
      • GOLD (5)
      • BRONZE (8)
      • SILVER (10)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준 3003번
  • 10807 C++
  • c++
  • BOJ 23972
  • BOJ10807
  • 23972 C++
  • 1715 C++
  • BOJ 1715
  • 백준 3003
  • BOJ 3003
  • BOJ 1181
  • 백준 10807
  • 9084 C++
  • 백준
  • 백준 1715번
  • 3003 C++
  • 백준 23972번
  • 백준 9084번
  • 백준 23972
  • BOJ 9084

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
퍼펙트코딩

퍼펙트코딩

백준/GOLD

[백준 9084번][C++] 동전

2022. 9. 15. 20:14
728x90
반응형

### 분류

다이나믹 프로그래밍(dp), 배낭 문제(knapsack)

#include <iostream>
#include <vector>
using namespace std;

int main() {
	int test;
	cin >> test;

	//indexdml 금액을 달성하는 방법의 개수
	vector<int> total_cnt(10000, 0);

	while(test--){
		//코인 종류 개수 입력
		int coin_cnt;
		cin >> coin_cnt;

		//코인 종류 입력
		vector<int> coin_list;
		for (int i = 0; i < coin_cnt;i++) {
			int input;
			cin >> input;
			coin_list.push_back(input);
		}

		//방법을 찾아야하는 목표 금액
		int target_money;
		cin >> target_money;

		//코인 종류만큼 반복
		for (int i = 0;i < coin_cnt;i++) {
			//처음 자기자신의 금액 업데이트
			total_cnt[coin_list[i]]++;
			for (int j = coin_list[i] + 1;j <= target_money;j++) {
				total_cnt[j] += total_cnt[j - coin_list[i]];
			}
		}

		cout << total_cnt[target_money]<<'\n';

		for (int i = 0;i < 10000;i++) {
			total_cnt[i] = 0;
		}
	}

}
728x90
반응형

'백준 > GOLD' 카테고리의 다른 글

[백준 1715번][C++] 카드 정렬하기  (0) 2022.09.08
[백준 7662번][C++] 이중 우선순위 큐  (0) 2022.08.29
[백준 10026번][C++] 적록색약  (0) 2022.08.08
[백준 7565번][C++] 토마토  (0) 2022.07.25
    '백준/GOLD' 카테고리의 다른 글
    • [백준 1715번][C++] 카드 정렬하기
    • [백준 7662번][C++] 이중 우선순위 큐
    • [백준 10026번][C++] 적록색약
    • [백준 7565번][C++] 토마토
    퍼펙트코딩
    퍼펙트코딩

    티스토리툴바