알고리즘 문제
[C/C++ 백준 2166번] 다각형의 면적 (Gold 5)
새파란 공대생
2020. 9. 9. 16:14
2166번: 다각형의 면적
첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.
www.acmicpc.net
ko.wikipedia.org/wiki/%EC%8B%A0%EB%B0%9C%EB%81%88_%EA%B3%B5%EC%8B%9D
신발끈 공식 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 신발끈 공식(―公式)은 좌표평면 상에서 꼭짓점의 좌표를 알 때 다각형의 면적을 구할 수 있는 방법이다. 다각형의 각 꼭짓점��
ko.wikipedia.org
참고하면 바로 풀 수 있다!
#include <cstdio>
#include <cmath>
using namespace std;
typedef struct Point{
long long int x;
long long int y;
}Point;
int main(void){
int N;
long long int ans = 0;
scanf("%d", &N);
Point point[N];
for(int i=0; i<N; i++)
scanf("%lld %lld",&point[i].x, &point[i].y);
for(int i=0; i<N; i++){
if(i==N-1)
ans += (point[N-1].x*point[0].y-point[0].x*point[N-1].y);
else
ans += (point[i].x*point[i+1].y-point[i+1].x*point[i].y);
}
printf("%.1lf", (fabs)(ans/2.0));
}