BaekJoon 2166번 : 다각형의 면적 (python)

owei·2024년 4월 28일

백준

목록 보기
46/62

📝 BaekJoon 2166번 : 다각형의 면적 (G5 25.592%)


🔎 다각형의 면적 문제


📌 아이디어

신발끈 공식을 이용하여 순서대로 정렬된 좌표들에 대하여 다각형의 면적을 구하는 문제이다.


💭 풀이

  • 다행히도 문제에서 인접한 좌표들을 순서대로 주어 신발끈 공식을 이용하여 다각형의 면적을 반복문 하나로 구할 수 있게 된다.
  • 신발끈 공식은 가우스의 면적 공식 or 사선 공식으로도 불리우며 이론상 블록다각형이든 오목다각형이든 관계없이 적용하여 넓이를 구할 수 있다고 한다.

신발끈 공식


💻 코드

import sys
input = sys.stdin.readline

n = int(input())

arr = []
for _ in range(n) :
    a, b = map(int,input().split())
    arr.append((a,b))

area = arr[n-1][0]*arr[0][1] - arr[0][0]*arr[n-1][1]
for i in range(n-1) :
    area += (arr[i][0]*arr[i+1][1]) - (arr[i][1]*arr[i+1][0])

area /= 2
if area < 0 :
    area = -area

print(area)

profile
owei

0개의 댓글