> 백엔드 개발 > C++ > 그리드에 패턴이 존재하는지 찾는 C++ 프로그램

그리드에 패턴이 존재하는지 찾는 C++ 프로그램

PHPz
풀어 주다: 2023-09-05 18:05:06
앞으로
855명이 탐색했습니다.

그리드에 패턴이 존재하는지 찾는 C++ 프로그램

n * n 그리드가 있다고 가정합니다. 아래와 같이 그리드에 십자형 패턴이 있는지 감지해야 합니다. −

#...#
.#.#.
..#..
.#.#.
#...#
로그인 후 복사

그리드에는 '#'과 '.'만 포함될 수 있습니다. 우리는 패턴을 감지하고 이들 중 얼마나 많은지 알아내야 합니다. 그리드의 패턴. 그리드와 치수가 입력으로 제공됩니다.

문제 카테고리

프로그래밍의 다양한 문제는 다양한 기술을 통해 해결될 수 있습니다. 문제를 해결하려면 먼저 알고리즘을 설계하고 특정 문제를 자세히 연구해야 합니다. 동일한 문제가 반복적으로 발생하면 재귀적 방법을 사용할 수도 있고, 반복 구조를 사용할 수도 있습니다. if-else 및 switch case와 같은 제어문을 사용하여 프로그램의 논리적 흐름을 제어할 수 있습니다. 변수와 데이터 구조를 효과적으로 사용하면 더 간단한 솔루션과 가볍고 메모리 요구 사항이 낮은 프로그램을 제공할 수 있습니다. 분할 정복, 탐욕 프로그래밍, 동적 프로그래밍과 같은 기존 프로그래밍 기술을 연구하고 사용할 수 있는지 알아내야 합니다. 이 문제는 몇 가지 기본적인 논리 또는 무차별 대입 방법으로 해결할 수 있습니다. 이 방법을 더 잘 이해하려면 아래를 따르십시오.

그래서 문제 입력이 n = 5이고 그리드가

#...#
.#.#.
..#..
.#.#.
#...#,
로그인 후 복사

이면 출력은 1이 됩니다.

Steps

이 문제를 해결하기 위해 다음 단계를 따릅니다.

count := 0
for initialize i := 1, when i < n - 1, update (increase i by 1), do:
   for initialize j := 1, when j < n - 1, update (increase j by 1), do:
      if grid[i, j] is same as &#39;#&#39; and grid[i - 1, j - 1] is same as &#39;#&#39; and grid[i - 1, j + 1] is same as &#39;#&#39; and grid[i + 1, j - 1] is same as &#39;#&#39; and grid[i + 1, j + 1] is same as &#39;#&#39;, then:
         (increase count by 1)
print(count)
로그인 후 복사

Example

더 나은 이해를 위해 아래 구현을 살펴보겠습니다. −

#include<bits/stdc++.h>
using namespace std;
void solve(int n, vector<string> grid) {
   int count = 0;
   for(int i = 1; i < n - 1; i++){
      for(int j = 1; j < n - 1; j++){
         if(grid[i][j] == &#39;#&#39; && grid[i - 1][j - 1] == &#39;#&#39; && grid[i - 1][j + 1] == &#39;#&#39; && grid[i + 1][j - 1] == &#39;#&#39; && grid[i + 1][j + 1] == &#39;#&#39;)
            count++;
      }
   }
   cout<< count;
}
int main() {
   int n = 5;
   vector<string> grid = {"#...#", ".#.#.", "..#..", ".#.#.", "#...#"};
   solve(n, grid);
   return 0;
}
로그인 후 복사

Input

5, {"#...#", ".#.#.", "..#..", ".#.#.", "#...#"}
로그인 후 복사

Output

1
로그인 후 복사

위 내용은 그리드에 패턴이 존재하는지 찾는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿