Skip to content

Instantly share code, notes, and snippets.

@JoseMPena
Created August 11, 2022 11:16
Show Gist options
  • Save JoseMPena/6e01cee7e42e1713472ed1b5c02bc2a0 to your computer and use it in GitHub Desktop.
Save JoseMPena/6e01cee7e42e1713472ed1b5c02bc2a0 to your computer and use it in GitHub Desktop.

Revisions

  1. JoseMPena created this gist Aug 11, 2022.
    57 changes: 57 additions & 0 deletions rover_challenge.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,57 @@
    # Coding Problem

    ## Instructions
    * Please read carefully the challenge and if you have any doubt or need extra info please don't hesitate to ask us before starting.
    * Design, test, develop and document the code. It should be a performant, clean and well structured solution. Then send us a link or a zip with a git repo.
    * You should consider this code ready for production as it were a PR to be reviewed by a colleague. Also commit as if it were a real assignment.
    * Your experience level will be taken into consideration when evaluating.
    * Sumit your solution as a private repository, giving us access so we can evaluate

    ## The problem

    A squad of robotic rovers are to be landed by NASA on a plateau on
    Mars. This plateau, which is curiously rectangular, must be navigated
    by the rovers so that their on-board cameras can get a complete
    view of the surrounding terrain to send back to Earth.
    A rover’s position and location is represented by a combination of x
    and y co- ordinates and a letter representing one of the four cardinal
    compass points. The plateau is divided up into a grid to simplify
    navigation. An example position might be 0, 0, N, which means the
    rover is in the bottom left corner and facing North.
    In order to control a rover, NASA sends a simple string of letters. The
    possible letters are ‘L’, ‘R’ and ‘M’. ‘L’ and ‘R’ makes the rover spin
    90 degrees left or right respectively, without moving from its current
    spot. ‘M’ means move forward one grid point, and maintain the same
    Heading.

    Assume that the square directly North from (x, y) is (x, y+1).

    INPUT:
    The first line of input is the upper-right coordinates of the plateau, the
    lower- left coordinates are assumed to be 0,0.
    The rest of the input is information pertaining to the rovers that have
    been deployed. Each rover has two lines of input. The first line gives
    the rover’s position, and the second line is a series of instructions
    telling the rover how to explore the plateau.
    The position is made up of two integers and a letter separated by
    spaces, corresponding to the x and y co-ordinates and the rover’s
    orientation.
    Each rover will be finished sequentially, which means that the
    second rover won’t start to move until the first one has finished
    Moving.

    OUTPUT
    The output for each rover should be its final co-ordinates and
    heading.

    INPUT AND OUTPUT
    Test Input:
    5 5
    1 2 N
    LMLMLMLMM
    3 3 E
    MMRMMRMRRM

    Expected Output:
    1 3 N
    5 1 E