LS216 Practice Problems
To prepare for the LS216 assessment I created a list of practice problems that I would study and solve. In this article I would like to share this list so that other students who are looking for problems to solve can use it as well. I’ll also discuss my experience with the live coding challenge.
The problems from this list vary and may not always be the type of problem that will be asked on the assessment. Nevertheless I found them to be good for improving my problem solving skills. There are 79 problems (if I counted correctly) from edabit. I worked on all of these and solved all but a few of them. Some were, or became after time, really easy. Others proved to be more challenging. I tried not to get too discouraged by the most difficult problems since I felt that the assessment question would not have the same level of complexity.
In addition to solving these I put a considerable amount of time into practicing algorithms for JavaScript. I mapped out numerous coding tasks that I thought could be relevant for the coding challenge. I then practiced these in isolation to become very proficient in case such a task was needed. This included several of the algorithms for nested iteration and array manipulation that I had practiced for the RB109 assessment. I also compared Ruby and JavaScript and made sure to practice the tasks that need to be done manually in JavaScript but have a built in method in Ruby. This way I could implement such a solution with a high level of confidence.
I prepped more than normal for the LS216 coding challenge. I wanted to prove that my performance on the RB109 coding challenge wasn’t a fluke. There is something about a high stakes, all or nothing coding challenge that makes me feel intimidated. So I made sure to prepare extensively. Overall between the LS content for the course, the problems list here, and my independent study of algorithms I totaled nearly 250 hours.
The preparation proved to be adequate. When I took the assessment and read the problem description I had a feeling right away I could solve it. I also recognized what algorithms I could use to solve the subproblems of the main problem. I made sure not to rush since making mistakes are costly. I took my time to thoroughly understand the problem and develop test cases. Overall I’d estimate I spent about 30 minutes on understanding the problem, developing test cases and writing an algorithm. I was then able to code the solution in about 10 minutes. Overall I felt in control the entire time and was able to solve the problem. I did have to address and fix an edge case right at the end of the interview which shows that I can be even more thorough next time. There is always room for improvement.
Problem List
Object Style Problems
Combining two objects into one, sum like values
Area of Overlapping Rectangles
Splitting Objects Inside an Array
Simplify an Object by two properties
25% discount on most expensive item
Count How many times an element is repeated
Check if the brick fits through the hole
Array Style Problems
Maxim Distance to Nearest Occupied Slot
Dividing into chunks of maximum sum n
Split the list into groups of consecutive numbers
Minesweeper Number of Neighbors
Maximum and Minimum Product Triplets
Moving Particles Absorb Each Other After Collision
Longest Substring with non repeating characters
Substring Consonant Vowel Groups