สมมติว่าเรามีกริด 2 แถว n คอลัมน์ หุ่นยนต์อยู่ที่ (0, 0) ต้องไป (1, n-1) โดยเดินไปเซลล์ติดกันและมุม ได้กริดเป็นอาร์เรย์สตริง เซลล์บล็อกถ้า '#' เข้าถึงได้ถ้า '.' ต้องหาว่าหุ่นยนต์ไป (1, n-1) จาก (0, 0) ได้หรือไม่
เช่น ถ้าอินพุตคือ n = 4, grid = {".##.", "...."} เอาต์พุตจะเป็น Possible
ขั้นตอนการแก้ปัญหา
flag := 1
for i := 0 ถึง n-1:
if grid[0, i] == '#' และ grid[1, i] == '#':
flag := 0
if flag == 0:
print("Not Possible.")
otherwise:
print("Possible.")
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
void solve(int n, string grid[]) {
int flag = 1;
for (int i = 0; i < n; i++) {
if (grid[0].at(i) == '#' && grid[1].at(i) == '#') {
flag = 0;
}
}
if (flag == 0)
cout << "Not Possible.";
else
cout << "Possible.";
}
int main() {
int n = 4;
string grid[] = {".##.", "...."};
solve(n, grid);
return 0;
}
อินพุต
4, {".##.", "...."}
เอาต์พุต
Possible.