데카르트 평면에 목록 좌표가 있다고 가정하면 좌표가 직선 세그먼트를 형성하는지 여부를 확인해야 합니다.
따라서 입력이 좌표 =[(5, 5),(8, 8),(9, 9)]와 같으면 출력은 True가 됩니다. 이러한 점이 기울기가 1인 선분을 형성하기 때문입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- (x0, y0) :=좌표[0]
- (x1, y1) :=좌표[1]
- 좌표 목록의 크기 - 1까지 범위 2의 i에 대해
- (x, y) :=좌표[i]
- (x0 - x1) * (y1 - y)가 (x1 - x) * (y0 - y1)과 같지 않으면
- 거짓을 반환
- 참 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
class Solution: def solve(self, coordinates): (x0, y0), (x1, y1) = coordinates[0], coordinates[1] for i in range(2, len(coordinates)): x, y = coordinates[i] if (x0 - x1) * (y1 - y) != (x1 - x) * (y0 - y1): return False return True ob = Solution() coordinates = [[5, 5],[8, 8],[9, 9]] print(ob.solve(coordinates))
입력
[[5, 5],[8, 8],[9, 9]]
출력
True