알고리즘/BOJ
2020. 3. 25.
[C++] 백준 2225번 - 합분해
0. 문제 1. 아이디어 예를 들어 (3, 3) 즉 0부터 3까지의 정수 중에서 3개를 더해 3을 만드는 경우의 수는 아래와 같다. 1. 숫자 0을 제일 먼저 더하고, 연속해서 나오는 2개의 숫자들의 합을 3로 하는 경우의 수 2. 숫자 1을 제일 먼저 더하고, 연속해서 나오는 2개의 숫자들의 합을 2로 하는 경우의 수 3. 숫자 2을 제일 먼저 더하고, 연속해서 나오는 2개의 숫자들의 합을 1로 하는 경우의 수 4. 숫자 3을 제일 먼저 더하고, 연속해서 나오는 2개의 숫자들의 합을 0로 하는 경우의 수 top-down 방식으로 이렇게 쭉쭉 내려가다보면 어느 순간 ( ??, 1 ) 이라는 경우를 만난다. 이때 ( ??, 1 )은 1가지 숫자를 더해서 ??을 만들어야 하니 반드시 1이 된다. (또한 같은..