Computer Science/Algorithm

BOJ 2166: 다각형의 면적 [Python 3]

무니화니 2023. 2. 24. 23:15

최근 장염에 걸려서 포스팅을 하지 못했다. 모두 건강 유의하고 아프지 않았으면 좋겠다.

 

오랜만에 올려보는 기하 관련 문제이다.

'신발끈 공식,' 즉 CCW를 통해서 구했다.

 

한 점을 정한다. 이후 두 점들을 쌍으로 정하여 신발끈 공식을 통해 삼각형의 넓이를 구한다.

 

answer=0
data.append(data[0])
for i in range(n):
    area=0
    area+=(data[i][0]-data[0][0])*(data[i+1][1]-data[0][1])
    area-=(data[i+1][0]-data[0][0])*(data[i][1]-data[0][1])
    area/=2
    answer+=area
print(round(abs(answer),1))

 

P.S. 

CCW는 두가지로 가능하다.