Polygon: TypeAliase = Sequence[Point]
for p1, p2 in itertools.pairwise([*polygon, polygon[0]])
...
for i in range(len(polygon)):
p1, p2 = polygon[i - 1], polygon[i]
...
def twice_of_polygon_area(polygon: Polygon) -> int:
signed_area = sum(
(p1[0] - p2[0]) * (p1[1] + p2[1])
for p1, p2 in itertools.pairwise([*polygon, polygon[0]])
)
return abs(signed_area)
- 난이도: 실버2
- 기본 문제: Electric Fence
- 난이도: 플래티넘 5
- 관련 솔브닥 태그: 오목 다각형 내부의 점 판정
- 기본 문제: 1688
- 필요한 사전 지식: 선분 교차