반응형

문제 출처 :


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


알고리즘 분석 :


문제 해결에 필요한 사항

1. 점이 주어질 때 다각형 면적 구하는 방법

2. fabs


벡터의 외적을 이용한 다각형 면적을 구하는 방식을 이용하였다.


이 문제를 풀기위해 도움을 받은 사이트는 아래와 같다.


http://darkpgmr.tistory.com/86



이 코드에서 한가지 알고 넘어가면 좋은 함수는 fabs함수이다. 


이 함수는 실수형 자료의 절댓값을 구해주는 함수이고, abs로 이 문제를 풀게되면 틀리게 된다.


참고로 abs 및 fabs는 #include <math.h>에 있다.



소스 코드 : 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <cstring>
#include <math.h>
using namespace std;
 
long double sum = 0;
int main()
{
    double x[10002];
    double y[10002];
    int n;
    int cnt = 0;
    cin >> n;
 
    for (int i = 0; i < n; i++)
        cin >> x[i] >> y[i];
 
    x[n] = x[0];
    y[n] = y[0];
     
    for (int i = 0; i < n; i++)
        sum += ((x[i] * y[i + 1]) / - (x[i + 1* y[i]) / 2);
 
 
    printf("%.1lf", fabs(sum));
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus


반응형

'Applied > 알고리즘 문제풀이' 카테고리의 다른 글

[1987번] 알파벳  (0) 2016.11.08
[10819번] 차이를 최대로  (0) 2016.11.08
[11727번] 2xn 타일링 2  (0) 2016.11.07
[1707번] 이분 그래프  (0) 2016.11.07
[13567번] Robot  (0) 2016.11.07