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

파이썬에서 점이 없고 가장 넓은 두 점 사이의 수직 영역을 찾는 프로그램

<시간/>

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