# Position of robot after given movements

• Difficulty Level : Basic
• Last Updated : 17 May, 2021

Given a robot which can only move in four directions, UP(U), DOWN(D), LEFT(L), RIGHT(R). Given a string consisting of instructions to move. Output the coordinates of a robot after executing the instructions. Initial position of robot is at origin(0, 0).

Examples:

Input : move = “UDDLRL”
Output : (-1, -1)
Explanation:
Move U : (0, 0)–(0, 1)
Move D : (0, 1)–(0, 0)
Move D : (0, 0)–(0, -1)
Move L : (0, -1)–(-1, -1)
Move R : (-1, -1)–(0, -1)
Move L : (0, -1)–(-1, -1)
Therefore final position after the complete
movement is: (-1, -1)

Input : move = “UDDLLRUUUDUURUDDUULLDRRRR”
Output : (2, 3)

Approach:
Count number of up movements (U), down movements (D), left movements (L) and right movements (R) as countUp, countDown, countLeft and countRight respectively. Final x-coordinate will be
(countRight – countLeft) and y-coordinate will be (countUp – countDown).

Below is the implementation of the above idea:

## C++

 `// C++ implementation to find  final position of``// robot after the complete movement``#include ``using` `namespace` `std;` `// Function to find  final position of``// robot after the complete movement``void` `finalPosition(string move)``{``    ``int` `l = move.size();``    ``int` `countUp = 0, countDown = 0;``    ``int` `countLeft = 0, countRight = 0;` `    ``// Traverse the instruction string 'move'``    ``for` `(``int` `i = 0; i < l; i++)``    ``{``        ``// For each movement increment its``        ``// respective counter``        ``if` `(move[i] == ``'U'``)``            ``countUp++;``        ``else` `if` `(move[i] == ``'D'``)``            ``countDown++;``        ``else` `if` `(move[i] == ``'L'``)``            ``countLeft++;``        ``else` `if` `(move[i] == ``'R'``)``            ``countRight++;``    ``}` `    ``// Required final position of robot``    ``cout << ``"Final Position: ("``         ``<< (countRight - countLeft)``         ``<< ``", "` `<< (countUp - countDown)``         ``<< ``")"` `<< endl;``}` `// Driver code``int` `main()``{``    ``string move = ``"UDDLLRUUUDUURUDDUULLDRRRR"``;``    ``finalPosition(move);``    ``return` `0;``}`

## Java

 `// Java implementation to find final position``// of robot after the complete movement` `import` `java.io.*;` `class` `GFG {` `    ``// function to find final position of``    ``// robot after the complete movement``    ``static` `void` `finalPosition(String move)``    ``{` `        ``int` `l = move.length();``        ``int` `countUp = ``0``, countDown = ``0``;``        ``int` `countLeft = ``0``, countRight = ``0``;` `        ``// traverse the instruction string``        ``// 'move'``        ``for` `(``int` `i = ``0``; i < l; i++)``        ``{``            ``// for each movement increment``            ``// its respective counter``            ``if` `(move.charAt(i) == ``'U'``)``                ``countUp++;` `            ``else` `if` `(move.charAt(i) == ``'D'``)``                ``countDown++;` `            ``else` `if` `(move.charAt(i) == ``'L'``)``                ``countLeft++;` `            ``else` `if` `(move.charAt(i) == ``'R'``)``                ``countRight++;``        ``}` `        ``// required final position of robot``        ``System.out.println(``"Final Position: ("``                           ``+ (countRight - countLeft) + ``", "``                           ``+ (countUp - countDown) + ``")"``);``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``String move = ``"UDDLLRUUUDUURUDDUULLDRRRR"``;``        ``finalPosition(move);``    ``}``}` `// This code is contributed by vt_m`

## Python3

 `# Python3 implementation to find final position``# of robot after the complete movement` `# function to find final position of``# robot after the complete movement`  `def` `finalPosition(move):` `    ``l ``=` `len``(move)``    ``countUp, countDown ``=` `0``, ``0``    ``countLeft, countRight ``=` `0``, ``0` `    ``# traverse the instruction string``    ``# 'move'``    ``for` `i ``in` `range``(l):` `        ``# for each movement increment``        ``# its respective counter``        ``if` `(move[i] ``=``=` `'U'``):``            ``countUp ``+``=` `1` `        ``elif``(move[i] ``=``=` `'D'``):``            ``countDown ``+``=` `1` `        ``elif``(move[i] ``=``=` `'L'``):``            ``countLeft ``+``=` `1` `        ``elif``(move[i] ``=``=` `'R'``):``            ``countRight ``+``=` `1` `    ``# required final position of robot``    ``print``(``"Final Position: ("``, (countRight ``-` `countLeft),``          ``", "``, (countUp ``-` `countDown), ``")"``)`  `# Driver code``if` `__name__ ``=``=` `'__main__'``:``    ``move ``=` `"UDDLLRUUUDUURUDDUULLDRRRR"``    ``finalPosition(move)` `# This code is contributed by 29AjayKumar`

## C#

 `// C# implementation to find final position``// of robot after the complete movement``using` `System;` `class` `GFG {` `    ``// function to find final position of``    ``// robot after the complete movement``    ``static` `void` `finalPosition(String move)``    ``{``        ``int` `l = move.Length;``        ``int` `countUp = 0, countDown = 0;``        ``int` `countLeft = 0, countRight = 0;` `        ``// traverse the instruction string``        ``// 'move'``        ``for` `(``int` `i = 0; i < l; i++)``        ``{``           ``// for each movement increment``            ``// its respective counter``            ``if` `(move[i] == ``'U'``)``                ``countUp++;` `            ``else` `if` `(move[i] == ``'D'``)``                ``countDown++;` `            ``else` `if` `(move[i] == ``'L'``)``                ``countLeft++;` `            ``else` `if` `(move[i] == ``'R'``)``                ``countRight++;``        ``}` `        ``// required final position of robot``        ``Console.WriteLine(``"Final Position: ("``                          ``+ (countRight - countLeft) + ``", "``                          ``+ (countUp - countDown) + ``")"``);``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``String move = ``"UDDLLRUUUDUURUDDUULLDRRRR"``;``        ``finalPosition(move);``    ``}``}` `// This code is contributed by Sam007`

## PHP

 ``

## Javascript

 ``
Output
`Final Position: (2, 3)`

My Personal Notes arrow_drop_up