학습
시험

꼭짓점이 1인 직사각형

난이도
BEGINNER

문제 설명

0과 1로만 이루어진 이차원 정수 배열 board가 주어집니다. 이 배열에서 네 꼭짓점이 모두 1이면서, 변이 x축과 y축에 평행한 직사각형의 개수를 세어야 합니다.

단, 한 칸(1×11 \times 1)짜리 정사각형은 직사각형으로 인정하지 않습니다. 오직 가로, 세로가 각각 2 이상인 직사각형(즉, 2×22 \times 2 이상의 사각형)만 세야 합니다.

예를 들어, 아래와 같은 배열이 주어졌을 때:

[
    [1, 0, 1, 1],
    [1, 1, 1, 0],
    [1, 0, 1, 1]
]

이 배열에서 네 꼭짓점이 모두 1인 직사각형은 총 5개이며, 꼭짓점들의 좌표는 다음과 같습니다:

  • (0,0)(0, 0), (0,2)(0, 2), (1,0)(1, 0), (1,2)(1, 2)
  • (0,0)(0, 0), (0,2)(0, 2), (2,0)(2, 0), (2,2)(2, 2)
  • (0,0)(0, 0), (0,3)(0, 3), (2,0)(2, 0), (2,3)(2, 3)
  • (0,2)(0, 2), (0,3)(0, 3), (2,2)(2, 2), (2,3)(2, 3)
  • (1,0)(1, 0), (1,2)(1, 2), (2,0)(2, 0), (2,2)(2, 2)

0과 1로 이루어진 이차원 정수 배열 board가 매개변수로 주어질 때, 네 꼭짓점이 모두 1이면서 x, y축에 평행한 직사각형의 개수를 반환하는 solution 함수를 작성하시오.


제한 사항

  • board의 행(세로) 개수는 1 이상 50 이하입니다.
  • board의 열(가로) 개수는 1 이상 50 이하입니다.
  • board의 각 원소는 0 또는 1입니다.

예시 테스트케이스 설명

테스트케이스 번호 board return
1 [[1,0,1,1],[1,1,1,0],[1,0,1,1]] 5
2 [[1,1,1],[1,1,1],[1,1,1]] 9
3 [[0,1],[1,0],[0,1]] 0

1번 테스트케이스 설명

다음과 같은 5개의 조건을 만족하는 직사각형이 존재합니다:

  • (0,0)(0, 0), (0,2)(0, 2), (1,0)(1, 0), (1,2)(1, 2)
  • (0,0)(0, 0), (0,2)(0, 2), (2,0)(2, 0), (2,2)(2, 2)
  • (0,0)(0, 0), (0,3)(0, 3), (2,0)(2, 0), (2,3)(2, 3)
  • (0,2)(0, 2), (0,3)(0, 3), (2,2)(2, 2), (2,3)(2, 3)
  • (1,0)(1, 0), (1,2)(1, 2), (2,0)(2, 0), (2,2)(2, 2)

2번 테스트케이스 설명

다음과 같은 9개의 조건을 만족하는 직사각형이 존재합니다:

  • 2×22 \times 2 크기의 직사각형 4개
  • 3×23 \times 2 크기의 직사각형 2개
  • 2×32 \times 3 크기의 직사각형 2개
  • 3×33 \times 3 크기의 직사각형 1개

3번 테스트케이스 설명

네 꼭짓점이 모두 1인 직사각형이 존재하지 않으므로 0을 반환합니다.