A robot moves in a plane starting from the original point (0,0)

Question:

  • A robot moves in a plane starting from the original point (0,0). The robot can move UP, DOWN, LEFT, and RIGHT with a given step.
  • The trace of robot movement is shown as the following:
    • UP 5
    • DOWN 3
    • LEFT 3
    • RIGHT 2

The numbers after the direction are steps. Please write a program to compute the distance from the current position after a sequence of movements and the original point. If the distance is a float, then just print the nearest integer.

Example:

  • If the following tuples are given as input to the program:
    • UP 5
    • DOWN 3
    • LEFT 3
    • RIGHT 2
  • Then, the output of the program should be: 2

Hints:

  • In case of input data being supplied to the question, it should be assumed to be a console input.

Solution:

import math
pos = [0,0]
while True:
    s = raw_input()
    if not s:
        break
    movement = s.split(" ")
    direction = movement[0]
    steps = int(movement[1])
    if direction=="UP":
        pos[0]+=steps
    elif direction=="DOWN":
        pos[0]-=steps
    elif direction=="LEFT":
        pos[1]-=steps
    elif direction=="RIGHT":
        pos[1]+=steps
    else:
        pass

print int(round(math.sqrt(pos[1]**2+pos[0]**2)))
Code language: Python (python)

Leave a Comment