import sys
input = sys.stdin.readline
N = int(input())
xy = []
for i in range(N):
xy.append(tuple(map(int,input().split())))
result = 0
for i in range(N-1):
x1,y1 = xy[i]
x2,y2 = xy[i+1]
result += (x1*y2-x2*y1)/2
x1,y1 = xy[-1]
x2,y2 = xy[0]
result += (x1*y2-x2*y1)/2
print(abs(round(result,1)))
수학적인 배경지식이 조금 있어야 풀 수 있는 문제.
두 벡터의 외적이 평행사변형의 넓이라는것을 알면 쉽게 풀 수 있다.
0,0을 기준점으로 잡고 처음점과 두번째 점까지의 벡터를 외적하고, 2로 나누어주면 0,0과 한 변이 이루는 삼각형의 넓이이다.
이때 원래는 절댓값을 씌워주어야 삼각형의 넓이지만 우리는 다각형의 넓이를 구하는 것이기 때문에 부호를 신경쓰지않고 처음부터 끝까지 더해준 뒤 절댓값을 씌워야 한다.
오늘의 교훈) 프로그래밍을 잘하기 위해선 수학공부가 필수이다.