Given a number n, count number of ways to fill a n x 4 grid using 1 x 4 tiles.
Input : n = 1 Output : 1 Input : n = 2 Output : 1 We can only place both tiles horizontally Input : n = 3 Output : 1 We can only place all tiles horizontally. Input : n = 4 Output : 2 The two ways are : 1) Place all tiles horizontally 2) Place all tiles vertically. Input : n = 5 Output : 3 We can fill a 5 x 4 grid in following ways : 1) Place all 5 tiles horizontally 2) Place first 4 vertically and 1 horizontally. 3) Place first 1 horizontally and 4 horizontally.
This problem is mainly an extension of this tiling problem
Let “count(n)” be the count of ways to place tiles on a “n x 4” grid, following two cases arise when we place the first tile.
- Place the first tile horizontally : If we place first tile horizontally, the problem reduces to “count(n-1)”
- Place the first tile vertically : If we place first tile vertically, then we must place 3 more tiles vertically. So the problem reduces to “count(n-4)”
Therefore, count(n) can be written as below.
count(n) = 1 if n = 1 or n = 2 or n = 3 count(n) = 2 if n = 4 count(n) = count(n-1) + count(n-4)
This recurrence is similar to Fibonacci Numbers and can be solved using Dynamic programming.
Count of ways is 3
Time Complexity : O(n)
Auxiliary Space : O(n)
This article is contributed by Rajat Jha. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Fill array with 1's using minimum iterations of filling neighbors
- Count number of ways to reach a given score in a game
- Count number of ways to cover a distance
- Count number of ways to reach destination in a Maze
- Search a Word in a 2D Grid of characters
- Count ways to reach the n'th stair
- Ways to sum to N using array elements with repetition allowed
- Ways to paint stairs with two colors such that two adjacent are not yellow
- Count Inversions in an array | Set 1 (Using Merge Sort)
- Count number of bits to be flipped to convert A to B
- Count number of occurrences (or frequency) in a sorted array
- Count the number of possible triangles
- Given a binary string, count number of substrings that start and end with 1.
- Count number of squares in a rectangle
- Find the number of islands | Set 1 (Using DFS)
- How to print maximum number of A's using given four keys
- Find the Number Occurring Odd Number of Times
- Find the smallest number whose digits multiply to a given number n
- Build Lowest Number by Removing n digits from a given number
- Minimum number of squares whose sum equals to given number n