n개의 점이 (x, y)로 주어졌다고 가정합니다. 수직 영역은 y축을 따라 무한히 확장된 영역입니다. 다른 점이 영역 내부에 없고 가장 넓도록 두 점 사이의 수직 영역을 찾아야 합니다.
따라서 입력이 pts =[[10,9],[11,11],[9,6],[11,9]]와 같으면 출력은 1이 됩니다.
빨간색과 파란색 영역이 최적이며 그 안에 점이 없습니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
목록 포인트 정렬
-
범위 1에서 pt 크기까지의 i에 대해
-
(pts[i, 0] - pts[i - 1, 0])
의 최대값을 반환합니다.
-
예
더 나은 이해를 위해 다음 구현을 살펴보겠습니다.
def solve(pts): pts.sort() return max(pts[i][0] - pts[i - 1][0] for i in range(1, len(pts))) print(solve([[10,9],[11,11],[9,6],[11,9]]))
입력
[[10,9],[11,11],[9,6],[11,9]]
출력
1