2166_다각형의 면적
Python/백준

2166_다각형의 면적

728x90

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

 

2166번: 다각형의 면적

첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.

www.acmicpc.net

 

 

 

주어진 좌표를 가지고 다각형의 넓이를 구하기 위해서는 신발끈 공식을 이용하면 된다.

 

https://ko.wikipedia.org/wiki/%EC%8B%A0%EB%B0%9C%EB%81%88_%EA%B3%B5%EC%8B%9D

 

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

신발끈 공식(―公式)은 좌표평면 상에서 꼭짓점의 좌표를 알 때 다각형의 면적을 구할 수 있는 방법이다. 다각형의 각 꼭짓점의 좌푯값을 교차하여 곱하는 모습이 신발끈을 묶을 때와 같아 이러

ko.wikipedia.org

즉 위 S를 구하는 식을 코드로 구현하기만 하면 된다.

 

 

import sys
import math
input = sys.stdin.readline

n = int(input())

lst = [  list(map(float,input().split()))  for _ in range(n)]
lst.append(lst[0])

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

result = math.fabs(result *0.5)
print(round(result,2))
728x90

'Python > 백준' 카테고리의 다른 글

2162_선분그룹  (0) 2022.05.26
11758_CCW  (0) 2022.05.22
1949_우수마을  (0) 2022.05.19
2533_사회망서비스 (메모리초과,재귀오류?)  (0) 2022.05.18
2213_트리의 독립집합  (0) 2022.05.18