2개의 행과 n개의 열이 있는 그리드가 있다고 가정합니다. 로봇은 그리드의 위치 (0, 0)에 있고 현재 위치로 인접 및 모서리 셀을 방문하여 (1, n - 1)을 방문하려고 합니다. 문자열 배열의 그리드가 주어지며 '#'으로 표시되면 셀이 차단되고 '.'로 표시되면 액세스할 수 있습니다. 로봇이 셀(0, 0)에서 셀(1, n - 1)을 방문할 수 있는지 확인해야 합니다.
따라서 입력이 n =4, grid ={".##.", "...."}와 같으면 출력이 가능합니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
flag := 1
for initialize i := 0, when i < n, update (increase i by 1), do:
if grid[0, i] is same as '#' and grid[1, i] is same as '#',
then:
flag := 0
if flag is same as 0, then:
print("Not Possible.")
Otherwise
print("Possible.") 예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <bits/stdc++.h>
using namespace std;
#define N 100
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.