All challenges
Medium 0 solved 0% acceptance

Robot Command Simulator

Move a robot using L (turn left 90 degrees), R (turn right 90 degrees), and A (advance one step).

Problem

Move a robot using L (turn left 90 degrees), R (turn right 90 degrees), and A (advance one step). Turning does not move it. Positive x points east and positive y points north. Directions are encoded as 0 = north, 1 = east, 2 = south, 3 = west. There are no obstacles or boundaries.

Implement robot_command_simulator(x, y, direction, commands).

Input

x: Initial horizontal coordinate.

y: Initial vertical coordinate.

direction: Initial direction: 0 north, 1 east, 2 south, 3 west.

commands: Commands to process from left to right.

Output

Return [final_x, final_y, final_direction], using the same direction encoding.

Constraints

−1,000,000,000 ≤ initial x, y ≤ 1,000,000,000. Direction is 0…3. There are 0…100,000 commands, each uppercase L, R, or A.

Examples

Example 1
Input:
x = 0
y = 0
commands = "RAALA"
direction = 0

Expected output:
expected = [2, 1, 0]
Input:
long long x = 0;
long long y = 0;
std::string commands = "RAALA";
long long direction = 0;

Expected output:
std::vector<long long> expected = {2, 1, 0};
Input:
long x = 0;
long y = 0;
string commands = "RAALA";
long direction = 0;

Expected output:
long[] expected = new long[] {2, 1, 0};

Explanation

Turn east, advance twice to (2, 0), turn north, then advance to (2, 1). Direction 0 means north.

Example 2
Input:
x = 3
y = -2
commands = "LLLL"
direction = 1

Expected output:
expected = [3, -2, 1]
Input:
long long x = 3;
long long y = -2;
std::string commands = "LLLL";
long long direction = 1;

Expected output:
std::vector<long long> expected = {3, -2, 1};
Input:
long x = 3;
long y = -2;
string commands = "LLLL";
long direction = 1;

Expected output:
long[] expected = new long[] {3, -2, 1};

Explanation

Four left turns restore the original east-facing direction (1). Turning never changes the coordinates.

References

This challenge is adapted for CodeUtility. Follow the statement and constraints above.

Learn from others

Community solutions

No published solutions yet. Solve this challenge to share the first one.