Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 정사각형(하나의 색상 셀 포함)을 동일한 두 부분으로 나눌 수 있는지 확인

<시간/>

크기가 n인 정사각형이 제공된다고 가정합니다. n 크기의 정사각형은 n2개의 작은 정사각형으로 더 나뉩니다. 작은 사각형은 단위 크기이며 사각형 중 하나는 고유한 색상으로 채색됩니다.

이제 더 큰 정사각형을 두 개의 동일한 부분으로 자르면 절단선이 고유한 색상의 작은 정사각형과 공통점이 없도록 절단해야 합니다. 새로 자른 두 조각이 서로의 거울상이라는 사실도 고려해야 합니다. 따라서 주어진 조건에서 그런 정사각형을 자르는 것이 가능한지 알아내야 합니다. 우리는 n의 값과 더 큰 사각형에서 색깔이 있는 사각형의 위치를 ​​가지고 있습니다.

따라서 입력이 size =50, color_row_pos =25, colors_col_pos =25와 같으면 출력은 "Cutting is not possible"이 됩니다.

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

  • 중간 :=크기 /2의 최소값
  • 만약 (중간이 color_row_pos와 같거나 중간이 color_row_pos - 1과 같거나) (중간이 color_col_pos와 같거나 중간이 color_col_pos - 1과 같으면
    • 거짓을 반환
  • 그렇지 않으면
    • 참 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

def solve(size, colored_row_pos, colored_col_pos) :
   middle = size // 2
   if (middle == colored_row_pos or middle == colored_row_pos - 1) and (middle ==    colored_col_pos or middle == colored_col_pos - 1) :
      print("Cutting is not possible")
   else :
      print("Cutting is possible")
size = 50
colored_row_pos, colored_col_pos = 25, 25 
solve(size, colored_row_pos, colored_col_pos)

입력

50, 25, 25

출력

Cutting is not possible