এই সমস্যাতে, একটি রোবট দেওয়া আছে যা চারদিকে যেতে পারে কিন্তু একবারে একটি মুভ। ডিরেকশনগুলো: আপ (U), ডাউন (D), লেফ্ট (L), রাইট (R)। এবং একটি স্ট্রিং দেওয়া আছে যাতে ডিরেকশনগুলোর INITIALS রয়েছে। আমাদের কাজ হলো রোবটের চূড়ান্ত পজিশন প্রিন্ট করা, দেওয়া আছে রোবটের প্রাথমিক পজিশন (0,0)।
উদাহরণ:
ইনপুট - 'LDRRUL'
আউটপুট - (0, 0)
ব্যাখ্যা -
L (left) : (0,0) -> (-1,0) D (down) : (-1,0) -> (-1, -1) R (right) : (-1, -1) -> (0, -1) R (right) : (0, -1) -> (1, -1) U(up) : (1, -1) -> (1, 0) L(left) : (1, 0) -> (0, 0)
সমাধানের জন্য, আমরা x-অক্ষ এবং y-অক্ষ ডিরেকশনে মোট মুভ কাউন্ট করব। x-কোঅর্ডিনেটের জন্য, রাইট মুভে কাউন্ট বাড়াব এবং লেফ্ট মুভে কমাব। y-কোঅর্ডিনেটের জন্য, আপ মুভে কাউন্ট বাড়াব এবং ডাউন মুভে কমাব।
উদাহরণ
সমাধানের প্রোগ্রাম:
#include <iostream>
#include <string.h>
using namespace std;
void robotMoved(string move) {
int xAxis = 0, yAxis = 0;
int l = move.size();
for (int i = 0; i < l; i++) {
if (move[i] == 'U')
yAxis++;
else if (move[i] == 'D')
yAxis--;
else if (move[i] == 'L')
xAxis--;
else if (move[i] == 'R')
xAxis++;
}
cout << "Final Position of the robot is : (" << xAxis << ", " << yAxis << ")" << endl;
}
int main() {
string move = "URLLDDRRUDUDDRU";
robotMoved(move);
return 0;
} আউটপুট
Final Position of the robot is : (32744, -274873553)
নোট: মূল প্রোগ্রামে xAxis এবং yAxis ইনিশিয়ালাইজ করা হয়নি, তাই গারবেজ ভ্যালু দেখাচ্ছে। সঠিক কোডে `int xAxis = 0, yAxis = 0;` থাকা উচিত।