문제

이 문제를 보았을 때 딱히 어떤 알고리즘을 사용해야겠다는 생각은 안들고 단순 구현인 것 같았다.
이 문제는 다각형의 넓이를 구하는 공식을 이용해서 풀어주면 되는데 이 공식을 모른다면 풀기가 까다로운 문제인 것 같다...(구글링 해보고 알게됨)
공식 참고 : https://darkpgmr.tistory.com/86
다각형 도형의 면적(넓이) 구하기
프로그래밍 등을 할 때 알아두면 유용한 다각형의 면적 구하는 방법입니다.(오랜만에 수학관련 포스팅을 합니다 ^^) 1. 2차원 평면에서 세 점의 좌표를 알 때 삼각형 면적 구하기 세 점의 좌표를 (
darkpgmr.tistory.com
이 내용을 참고하면 다각형의 넓이를 구하는 공식은

이렇게 된다는 것을 알 수 있다.
이를 코드로 구현하면
n = int(input())
polygon = []
for _ in range(n):
x,y = map(int, input().split())
polygon.append([x,y])
ans = 0
#마지막에 n과 1번째 곱하고 빼므로 마지막에 첫번째 것 추가
polygon.append(polygon[0])
for i in range(n):
ans += polygon[i][0]* polygon[i+1][1] - polygon[i+1][0]*polygon[i][1]
print(abs(ans)/2)
이렇게 된다
마지막에는 n번째 꼭짓점과 첫번째 꼭짓점의 x,y 좌표값을 곱하고 빼므로 마지막 부분에 미리 첫번째 좌표의 값을 더 넣어주고 시작해주었다.
구현을 하는게 어렵다기 보단 공식을 알지 못하면 풀기 힘든 문제였다.
'코딩테스트 > 백준' 카테고리의 다른 글
| [백준] 1038 감소하는 수 - python 파이썬 (0) | 2024.12.10 |
|---|---|
| [백준] 14179번 빗물 - python 파이썬 (1) | 2024.11.27 |
| [백준] 9205번 맥주마시면서 걸어가기 - python 파이썬 (2) | 2024.11.20 |
| [백준] 10799번 쇠막대기 - python 파이썬 (0) | 2024.10.31 |
| [백준]2467번 용액 - python파이썬 (2) | 2024.10.23 |