https://www.acmicpc.net/problem/2166

 

import sys

input = sys.stdin.readline
n = int(input().strip())
points = [tuple(map(int, input().split())) for _ in range(n)]

ans = 0
for i in range(n):
    x1, y1 = points[i]
    x2, y2 = points[(i+1) % n] # 마지막 점을 idx 0으로 취급위해
    ans += x1 * y2 - (x2 * y1)


area = abs(ans) / 2
print(f"{area:.1f}")

# 가우스 면적 공식

https://ko.wikipedia.org/wiki/%EC%8B%A0%EB%B0%9C%EB%81%88_%EA%B3%B5%EC%8B%9D#:~:text=%EC%8B%A0%EB%B0%9C%EB%81%88%20%EA%B3%B5%EC%8B%9D(%E2%80%95%E5%85%AC%E5%BC%8F),%E6%96%9C%E7%B7%9A%20%E5%85%AC%E5%BC%8F)%EC%9C%BC%EB%A1%9C%EB%8F%84%20%EB%B6%88%EB%A6%B0%EB%8B%A4.

 

신발끈 공식 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 신발끈 공식(―公式)은 좌표평면 상에서 꼭짓점의 좌표를 알 때 다각형의 면적을 구할 수 있는 방법이다. 다각형의 각 꼭짓점의 좌푯값을 교차하여 곱하는 모

ko.wikipedia.org

 

신발끈 공식을 이용하면 겁내 쉽게 풀 수 있는 문제였음. 근디 난 벡터에 꽂혀서, 평행사변형 공식 이용하려고했음. 하지만 코드가 더 복잡해짐.  

딸깍 !! (쉽게쉽게 가자...)

'문제풀이 > 플래 도전기' 카테고리의 다른 글

백준 11049 - 행렬 곱셈 순서  (0) 2025.11.24

+ Recent posts