Position of robot after given movements

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 completemovement is: (-1, -1)
Input : move = “UDDLLRUUUDUURUDDUULLDRRRR”Output : (2, 3)
Source: Goldman Sachs Interview Experience | Set 36 .
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++
Java
Python3
C#
PHP
Javascript
// C++ implementation to find  final position of// robot after the complete movement#include <bits/stdc++.h>using namespace std; // Function to find  final position of// robot after the complete movementvoid 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 codeint main(){    string move = "UDDLLRUUUDUURUDDUULLDRRRR";    finalPosition(move);    return 0;}
// 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 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 codeif __name__ == '__main__':    move = "UDDLLRUUUDUURUDDUULLDRRRR"    finalPosition(move) # This code is contributed by 29AjayKumar
// C# implementation to find final position// of robot after the complete movementusing 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// PHP implementation to find// final position of robot after// the complete movement // function to find final position of// robot after the complete movementfunction finalPosition($move){    $l = strlen($move);    $countUp = 0;    $countDown = 0;    $countLeft = 0;    $countRight = 0;     // traverse the instruction    // string 'move'    for ($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    echo "Final Position: ("        . ($countRight - $countLeft)        . ", " , ($countUp - $countDown)        . ")" ."\n";}     // Driver Code    $move = "UDDLLRUUUDUURUDDUULLDRRRR";    finalPosition($move);     // This code is contributed by Sam007?>
<script>    // Javascript implementation to find final position    // of robot after the complete movement         // function to find final position of    // robot after the complete movement    function finalPosition(move)    {        let l = move.length;        let countUp = 0, countDown = 0;        let countLeft = 0, countRight = 0;          // traverse the instruction string        // 'move'        for (let 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        document.write("Final Position: ("                          + (countRight - countLeft) + ", "                          + (countUp - countDown) + ")");    }         let move = "UDDLLRUUUDUURUDDUULLDRRRR";      finalPosition(move);     </script>
Final Position: (2, 3)
Sam007
nidhi_biet
29AjayKumar
aishbetu
mukesh07
Goldman Sachs
Strings
Goldman Sachs
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.