코딩테스트
[C++] 다각형 면적
뇨롱
2021. 6. 27. 00:40
숙제 2 (다각형 면적)
이차원 평면에서 n개의 점이 주어졌을때, 이 점들을 연속적으로 연결한 단순다각형의 면적의 2배를 계산하고, 이 점들이 시계방향으로 나열되었는지 혹은 반시계방향으로 나열되었는지를 판별하는 프로그램을 작성하시오
#include<iostream>
#include<string.h>
#include<cmath>
using namespace std;
int main(){
int n=0x00;
cin>>n;
int width=0x00;
int **arr=new int*[n+1];
for(int i=0;i<n+1;i++){
arr[i]=new int[2];
memset(arr[i],0,sizeof(int)*2);
}
for(int i=0;i<n;i++){
cin>>arr[i][0]>>arr[i][1];
}
arr[n][0]=arr[0][0];
arr[n][1]=arr[0][1];
for(int i=0;i<n;i++) width+=(arr[i][0]*arr[i+1][1]-arr[i][1]*arr[i+1][0]);
cout<<abs(width);
if( width<0) printf(" -1");
else printf(" 1");
cout<<endl;
return 0;
}