728x90
반응형
[Gold V] 다각형의 면적 - 2166
[문제 링크](https://www.acmicpc.net/problem/2166)
🗝️알고리즘 분류
- 기하학
- 다각형의 넓이
- 신발끈 공식
💻문제 정의
2차원 평면 위에 다각형을 이루는 N개의 점이 있다. 다각형을 이루는 순서대로 N개의 점이 주어질 때, 다각형의 넓이를 구하는 문제이다.
💡접근 및 설계
기하학에서 다각형의 넓이를 구할 때 사용하는 신발끈 공식을 이용하여 문제를 해결하였다.
삼각형을 예시로 하였을 때 다음과 같은 공식이 성립한다는 것이 신발끈 공식이다.
🗒️전체 코드
# 2166 다각형의 면적
N = int(input())
xy = []
for _ in range(N):
xy.append(list(map(int, input().split())))
xy.append(xy[0]) # 첫 번째 좌표를 한번 더 입력
# 신발끈 공식
area = 0
for i in range(N):
area += (xy[i][0] * xy[i+1][1]) - (xy[i+1][0] * xy[i][1])
print(round(abs(area) / 2, 1))
728x90
반응형
'백준 > Gold' 카테고리의 다른 글
[Python] 15681 - 트리와 쿼리 (0) | 2025.03.27 |
---|---|
[Python] 2467 - 용액 (0) | 2025.03.27 |
[Python] 1753 - 최단경로 (0) | 2025.03.18 |
[Python] 12865 - 평범한 배낭 (0) | 2025.03.10 |
[Python] 1918 - 후위 표기식 (1) | 2025.02.27 |