ในปัญหานี้ เราได้รับหุ่นยนต์ที่เคลื่อนที่ได้ทั้งสี่ทิศทางแต่เคลื่อนที่เพียงครั้งเดียว ทิศทางขึ้น('U'), ลง('D'), ซ้าย('L'), ขวา('R') และเราได้รับสตริงที่มีชื่อย่อของทิศทางของตัวเลข งานของเราคือพิมพ์ตำแหน่งสุดท้ายของหุ่นยนต์ โดยให้ตำแหน่งเริ่มต้นของหุ่นยนต์คือ (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, yAxis;
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)