[골드 5] 백준 2166 - 다각형의 면적 (파이썬)
글 작성자: pental
https://www.acmicpc.net/problem/2166
풀이
- 평면 위의 N개의 꼭짓점이 주어지는 다각형의 면적을 구하라
- 정점 N개
- 면적을 소수점 첫째 자리까지 반올림
다각형의 꼭짓점 (x1, y1), (x2, y2), … , (xn, yn) 순서로 주어졌을때 면적은 신발끈 공식으로 해결 할 수 있다.
area = 0
for i in range(N):
x1, y1 = points[i]
x2, y2 = points[(i + 1) % N]
area += (x1 * y2) - (x2 * y1)
x1 * y2 - x2 * y1 항을 순서대로 모두 더해서 신발끈 공식의 분자 부분을 구한다.
(i + 1) % N 으로 마지막 점과 첫 점을 연결한다.
print(round(abs(area) / 2, 1))
절대값을 취한 뒤 2로 나누고, 소수점 첫째자리까지 반올림 하여 출력한다.
코드
# 백준 2166 - 다각형의 면적
# 분류 : 기하학
N = int(input())
points = [tuple(map(int, input().split())) for _ in range(N)]
area = 0
for i in range(N) :
x1, y1 = points[i]
x2, y2 = points[(i + 1) % N]
area += (x1 * y2) - (x2 * y1)
print(round(abs(area) / 2, 1))
'Programming > 백준' 카테고리의 다른 글
[골드 4] 백준 4803 - 트리 (파이썬) (0) | 2025.05.12 |
---|---|
[골드 4] 백준 7662 - 이중 우선순위 큐 (파이썬) (0) | 2025.05.11 |
[골드 3] 백준 1005 - ACM Craft (파이썬) (0) | 2025.05.10 |
[골드 3] 백준 16947 - 서울 지하철 2호선 (파이썬) (0) | 2025.05.10 |
[골드 1] 백준 2263 - 트리의 순회 (파이썬) (0) | 2025.05.09 |
댓글
이 글 공유하기
다른 글
-
[골드 4] 백준 4803 - 트리 (파이썬)
[골드 4] 백준 4803 - 트리 (파이썬)
2025.05.12 -
[골드 4] 백준 7662 - 이중 우선순위 큐 (파이썬)
[골드 4] 백준 7662 - 이중 우선순위 큐 (파이썬)
2025.05.11 -
[골드 3] 백준 1005 - ACM Craft (파이썬)
[골드 3] 백준 1005 - ACM Craft (파이썬)
2025.05.10 -
[골드 3] 백준 16947 - 서울 지하철 2호선 (파이썬)
[골드 3] 백준 16947 - 서울 지하철 2호선 (파이썬)
2025.05.10