Consider a game where a player can score 3 or 5 or 10 points in a move. Given a total score n, find number of ways to reach the given score.
Input: n = 20 Output: 4 There are following 4 ways to reach 20 (10, 10) (5, 5, 10) (5, 5, 5, 5) (3, 3, 3, 3, 3, 5) Input: n = 13 Output: 2 There are following 2 ways to reach 13 (3, 5, 5) (3, 10)
This problem is a variation of coin change problem and can be solved in O(n) time and O(n) auxiliary space.
The idea is to create a table of size n+1 to store counts of all scores from 0 to n. For every possible move (3, 5 and 10), increment values in table.
Count for 20 is 4 Count for 13 is 2
Exercise: How to count score when (10, 5, 5), (5, 5, 10) and (5, 10, 5) are considered as different sequences of moves. Similarly, (5, 3, 3), (3, 5, 3) and (3, 3, 5) are considered different.
This article is contributed by Rajeev Arora. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
- Count the number of ways to tile the floor of size n x m using 1 x m size tiles
- Minimum number of jumps to reach end
- Total number of possible Binary Search Trees and Binary Trees with n keys
- Efficient program to print all prime factors of a given number
- Optimal Strategy for a Game | DP-31
- Count all possible paths from top left to bottom right of a mXn matrix
- Program for nth Catalan Number
- Count number of binary strings without consecutive 1's
- Count Possible Decodings of a given Digit Sequence
- Count all possible walks from a source to a destination with exactly k edges
- Count ways to reach the n'th stair
- Find the minimum cost to reach destination using a train
- How to print maximum number of A's using given four keys
- Count possible ways to construct buildings
- Count numbers from 1 to n that have 4 as a digit