평면 상의 다각형의 넓이 구하는 신발끈 공식 구현
1. 문제
2166번: 다각형의 면적
첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.
www.acmicpc.net
2. 풀이
2차원 평면상에 n개의 점으로 이루어진 다각형의 넓이를 구하는 방법으로 신발끈 공식이라고 있다
유도는 생략하고 그냥 그대로 구현해보자
2개의 x만 가지는 리스트와 y만 가지는 리스트를 구한다
x 리스트를 인덱스로 순회해서, 1칸 앞 인덱스의 y와 곱해서 합해주고
y리스트를 인덱스로 순회해서 1칸 앞 인덱스의 x와 곱해서 합해주고
두 결과를 빼서 절댓값을 취하면 될 것
from sys import stdin
n = int(stdin.readline())
pointX = []
pointY = []
for _ in range(n):
x,y = map(int,stdin.readline().split())
pointX.append(x)
pointY.append(y)
pointX.append(pointX[0])
pointY.append(pointY[0])
summation = 0
for i in range(n):
summation += pointX[i]*pointY[i+1]
summation -= pointY[i]*pointX[i+1]
print(f"{abs(summation)/2:.1f}")
이 문제는 점이 다각형을 이루는 순서대로 주어져서 공식이 성립하는데
점이 순서대로 이루어지지 않으면 다각형이 유일하게 결정되지 않을 수 있고
또 다각형의 각 변이 교차하지 않아야 성립한다고 한다
신발끈 공식 - 나무위키
이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권
namu.wiki
'기하학' 카테고리의 다른 글
네 점이 주어질때 정사각형인지 판단하는 방법 (0) | 2023.03.05 |
---|---|
사인법칙, 삼각형의 넓이, 코사인법칙, 외접원의 중심의 좌표 구하기 한번에 배우기 (0) | 2023.03.05 |
외심과 내심의 직선거리를 구하는 방법 - 오일러의 삼각형 정리 (0) | 2023.02.21 |
넓이가 가장 넓은 평행사변형 찾기 (0) | 2023.02.21 |
원을 두 현으로 분할할때 길이를 구하는 방법 - power theorem(방멱 정리) (0) | 2023.02.21 |