Created
May 31, 2020 00:07
-
-
Save itzbernoulli/3c2900de587ea80ce943aff0cbe2caf3 to your computer and use it in GitHub Desktop.
Racing Car (hackerrank)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class Node | |
| attr_reader :value | |
| attr_accessor :right, :left | |
| def initialize(value) | |
| @value = value | |
| @left =nil | |
| @right =nil | |
| end | |
| end | |
| def choice(n) | |
| if n == 1 | |
| return 2,3 | |
| elsif n == 2 | |
| return 1,3 | |
| else | |
| return 1,2 | |
| end | |
| end | |
| def pushNode(node,first,second) | |
| if node.left | |
| pushNode(node.left,first,second) | |
| else | |
| node.left = Node.new(second) | |
| end | |
| if node.right | |
| pushNode(node.right, first,second) | |
| else | |
| node.right = Node.new(first) | |
| end | |
| end | |
| def traverse(node) | |
| if node == nil | |
| return | |
| end | |
| if node.left | |
| traverse(node.left) | |
| end | |
| if node.right | |
| traverse(node.right) | |
| end | |
| end | |
| def minimumMovement(obstacleLanes) | |
| # Write your code here | |
| arr = Array.new | |
| obstacleLanes.each do |lane| | |
| arr << choice(lane) | |
| end | |
| root = Node.new(2); | |
| arr.each do |inner| | |
| pushNode(root, inner[0], inner[1]) | |
| end | |
| traverse(root) | |
| end | |
| minimumMovement([2,1,2]) | |
| # minimumMovement([2,1,3,2]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.