কম্পিউটার টিউটোরিয়াল

C++-এ দেওয়া মুভমেন্ট অনুযায়ী রোবটের পজিশন


এই সমস্যাতে, একটি রোবট দেওয়া আছে যা চারদিকে যেতে পারে কিন্তু একবারে একটি মুভ। ডিরেকশনগুলো: আপ (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;` থাকা উচিত।


  1. সি++ কোড: রোবটের ফাইনাল পজিশন পাওয়ার জন্য ন্যূনতম স্টেপ গণনা করুন

  2. C++-এ T সেকেন্ড পর একটি মেঢোর অবস্থান

  3. C++-এ K উপাদান যোগ করে অ্যারে-এর মেডিয়ান সর্বাধিক করা

  4. C++-এ সাবস্ট্রিং