https://www.acmicpc.net/problem/2166
입력
첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.
출력
첫째 줄에 면적을 출력한다. 면적을 출력할 때에는 소수점 아래 둘째 자리에서 반올림하여 첫째 자리까지 출력한다.
코드
n = int(input())
arr = []
for i in range(n):
arr.append(tuple(map(int, input().split())))
area = 0
for i in range(n):
x1, y1 = arr[i]
x2, y2 = arr[(i + 1) % n]
area += (x1 * y2) - (x2 * y1)
print(round(abs(area) / 2, 2))
'Program Solving > Python' 카테고리의 다른 글
[BOJ/Python] 4948번: 베르트랑 공준 | 에라토스테네스의 체 (0) | 2025.02.06 |
---|---|
[BOJ/Python] 1934: 최소공배수 | 유클리드 호제법 (Euclidean Algorithm) (0) | 2025.02.03 |
[BOJ/Python] 15552번: 빠른 A+B | Python 빠른 입출력 (0) | 2025.01.26 |
[BOJ/Python] 1991번: 트리 순회 (0) | 2025.01.25 |
[BOJ/Python] 7569번: 토마토 | 3차원 BFS(Breadth-First Search) (0) | 2025.01.22 |