PS

백준 2166. 다각형의 면적

tose33 2022. 2. 24. 21:54

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

 

2166번: 다각형의 면적

첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.

www.acmicpc.net

 

마찬가지로 CCW 를 이용하는 문제다.

CCW 결과로 나오는 외적은 결국 두 벡터가 이루는 평행사변형의 넓이이므로 /2를 해주면 삼각형의 넓이다.

하나의 점을 기준으로 삼각형들로 나눠서 삼각형들의 넓이들을 합해주면 된다.

 

라고 단순하게 생각하고 제출했는데 계속 오답판정을 받았다.

틀린 코드는 CCW 결과로 음수가 될수 있으므로 음수일 경우 양수로 바꾼후 리턴하도록 했는데,

이 경우 다각형에 오목한 부분이 있을 경우가 계산이 안된다.

 

음수인 경우 그냥 음수를 리턴하면, 오목한 부분은 저절로 전체 넓이에서 빠지게 된다.