Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

그리드에 완전히 액세스할 수 있는지 확인하는 C++ 코드

<시간/>

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.