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.