다각형의 넓이 구하기(백준 알고리즘 2166번)
2024. 3. 6. 21:29ㆍ알고리즘
♣ 다각형의 넓이를 구하는 공식
CCW처럼 다각형의 넓이를 구하는 공식도 있다. CCW에서 본 신발끈 기법과 유사하다.
위와 같이 점들의 x, y 좌표가 주어지면 공식을 이용하여 면적을 구할 수 있다.
먼저 반시계 방향으로 꼭짓점 좌표들을 나열한다.
그리고 맨 처음 좌표를 맨 끝에 추가하여 나열한다.
신발끈 공식처럼 앞 꼭짓점의 x좌표와 뒷꼭짓점의 y좌표를 곱한 값들을 모두 더한다.
이번에는 반대로 앞 꼭짓점의 y좌표와 뒷꼭짓점의 x좌표를 곱한 값을 모두 더한다.
이제 첫 번째 결과에서 두 번째 결과를 뺀다 => 82-(-38) = 120
이 결과값을 2로 나누면 다각형의 넓이를 구할 수 있다.
단, 꼭짓점을 반시계 방향 대신 시계 방향으로 나열하여 계산하면 결과값이 음수가 된다. 그래서 음수가 나온 경우에는 절대값을 구하면 된다.
♣ 백준알고리즘 2166번
다각형을 이루는 순서대로 점이 주어지므로 점의 순서가 반시계방향일 수도, 시계 방향일 수도 있다.
위의 공식을 적용하여 코드를 작성한다.
♣ 참고 자료
다각형 넓이 구하기: 15 단계 (이미지 포함) - wikiHow
다각형의 넓이를 계산하는 일은 정삼각형 넓이를 구하는 것처럼 간단하기도 하지만 각 변의 길이가 다른 11각형의 넓이를 구하는 것처럼 복잡하기도 합니다. 다양한 다각형의 넓이를 구하는 방
ko.wikihow.com
'알고리즘' 카테고리의 다른 글
애드훅(ad-hoc, 백준 알고리즘 31631번) (0) | 2024.03.22 |
---|---|
DP(백준 알고리즘 2156번) (0) | 2024.03.14 |
CCW(Counter Clock Wise, 백준 알고리즘 11758번) (0) | 2024.02.26 |
순열(백준 알고리즘 10973번) (0) | 2024.02.21 |
자료구조 큐(Queue, 백준 알고리즘 2164번) (0) | 2024.02.08 |