kyo
Hyo's Inside
kyo
전체 방문자
오늘
어제
  • 분류 전체보기 (29)
    • Computer Science (1)
    • 42Seoul (6)
    • Algorithm (9)
      • Theory (5)
      • Daily PS (4)
    • Language & Framework (12)
      • Spring (0)
      • Java (11)
      • React (0)
      • C&C++ (0)
      • Node.js (1)
    • Dev (1)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • philosophers
  • 도커
  • minitalk
  • mutex
  • Algorithm
  • 알고리즘
  • Greedy
  • 42SEOUL
  • LEMP
  • 참고자료 : 이것이 코딩테스트이다 with 파이썬
  • 슬랙
  • 자바
  • 빅오
  • sigaction
  • Nginx
  • 슬랙봇
  • 백준
  • 세미나
  • slack
  • docker

최근 글

티스토리

kyo

Hyo's Inside

Algorithm/Daily PS

[Algorithm] BOJ 동전 1 - 2293번

2021. 4. 5. 00:08

 

 

 

1. 문제 풀이

n 가지 종류의 동전으로 그 가치의 합이 k원이 될 수 있는 경우의 수를 구하는 문제이다. 각각의 동전은 몇개라도 사용할 수 있다.

(1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 으로 주어진다.

우선 해당 값을 만들 수 있는 경우의 수는 값의 배수 일때 1번.

순열으로 만들었을때 두가지 동전으로 만들 수 있는 경우의 수 = 이전 동전으로 만들 수 있는 경우의 수 + 현재 동전으로 만들 수 있는 경우의 수 가 되는것이다.

이것을 점화식으로 인덱스에 기록해가며 더해가면 해당 동전들로 가능한 경우의 수를 구할 수 있다.

처음 첫 인덱스에 값을 1로 설정하고 그 뒤를 0으로 초기화해 처음 coin의 값이 들어갈 때 1이 더해지도록 했다.

 

 

2. 코드

#include <iostream>

using namespace std;

int main(int argc, char const *argv[])
{
	int n,k;
	//동전 종류 수
	cin >> n;
	//가치
	cin >> k;
	int coin;
	//가치크기 배열 1, 0 ... 초기화
	int	val[k + 1] = ;
	for (int j = 0; j < n; j++)
	{
		cin >> coin;
	//코인의 값을 받아 i에 설정, 코인의 값만큼 이전 인덱스 값을 더해가며 저장
		for (int i = coin; i < k + 1; i++)
			val[i] += val[i - coin];
	}
	cout << val[k] << endl;
	return 0;
}

3. 채점 기록

메모리 : 2016KM / 0ms

 

 

'Algorithm > Daily PS' 카테고리의 다른 글

[Algorithm] BOJ 다리놓기 - 1010번  (0) 2021.04.05
[Algorithm] BOJ LCS 2 - 9252번  (0) 2021.04.05
[Algorithm] BOJ 팰린드롬? - 10942번  (0) 2021.04.04
    'Algorithm/Daily PS' 카테고리의 다른 글
    • [Algorithm] BOJ 다리놓기 - 1010번
    • [Algorithm] BOJ LCS 2 - 9252번
    • [Algorithm] BOJ 팰린드롬? - 10942번
    kyo
    kyo
    〈 🖥〉

    티스토리툴바