반응형
문제 출처 :
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]) / 2 - (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 |