Google Code Jam Qualification Round 2012 Solutions | etc. and everything else



Google Code Jam Qualification Round 2012 Solutions | etc. and everything else

So yesterday I had a few hours free and decided to try the annual Google Code Jam qualification round. Typically, the questions at this stage are fairly straightforward and most people get them. We only needed 20 points (out of 100 possible points) to qualify, which equates to solving the small instances of two problems or both the small and large instance of one problem. I was able to solve three problems (small and large) for a total of 60 points. But the last one was quite challenging and I haven't been able to figure that one out yet. Anyway, here are my solutions and a bit of analysis for the first three.

Problem 1: Speaking in Tongues

This was actually a completely trivial question. I enjoyed it because they really made the question a bit out of the box. The solution was actually almost completely encoded in the problem statement and sample input! Once you made that realization, writing the actual code to solve an instance of basically any size was very easy. The main observation in this problem is that we are given the three mappings in the problem statement as well as a bunch of mappings in the sample inputs. We are told that the map is constant among all possible inputs so, I decided the easiest way to proceed was to just hard-code these mappings directly into my code. Doing a quick check revealed that we had received exactly 25 character mappings. At this point, I just looked through the list and realized that the mapping 'q' → 'z' was the only one missing. Adding that one in manually completed the cipher and you could just use that to translate everything else. The code is below.


Read full article from Google Code Jam Qualification Round 2012 Solutions | etc. and everything else


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts