풀이
"백준 11758, CCW"를 이용해 풀이했다.
벡터곱의 값은 두 벡터로 이루어지는 평행사변형의 넓이와 동일하므로, 벡터곱의 값을 반으로 나눈 값을 더해주면 된다.
기준점이 필요하기 때문에 처음에 입력받은 좌표를 기준점으로 했다.
소스코드
#include <stdio.h>
typedef struct{
double x, y;
}Point;
int main(){
int N;
scanf("%d", &N);
Point p[N];
for (int i = 0; i < N; i++)
scanf("%lf %lf", &p[i].x, &p[i].y);
double sum = 0;
for (int i = 1; i < N; i++)
sum += ((p[i-1].x - p[0].x)*(p[i].y - p[0].y) - (p[i-1].y - p[0].y)*(p[i].x - p[0].x)) / 2;
printf("%.1lf", sum *= sum < 0 ? -1 : 1);
}
출처
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 2239] 스도쿠 [C] (0) | 2021.08.25 |
---|---|
[백준 1806] 부분합 [C] (0) | 2021.08.25 |
[백준 11758] CCW [C] (0) | 2021.08.25 |
[백준 9527] 1의 개수 세기 [C] (0) | 2021.08.25 |
[백준 9252] LCS 2 [C] (0) | 2021.08.24 |