기록하는삶
[코딩 테스트 연습(파이썬/Python)] 백준(BOJ) 2166번 _ 다각형의 면적 본문
백준(Python)/기하학(Geometry)
[코딩 테스트 연습(파이썬/Python)] 백준(BOJ) 2166번 _ 다각형의 면적
mingchin 2022. 2. 15. 21:46728x90
반응형
https://www.acmicpc.net/problem/2166
[문제]
2차원 평면상에 N(3 ≤ N ≤ 10,000)개의 점으로 이루어진 다각형이 있다. 이 다각형의 면적을 구하는 프로그램을 작성하시오.
[입력]
첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.
[출력]
첫째 줄에 면적을 출력한다. 면적을 출력할 때에는 소수점 아래 둘째 자리에서 반올림하여 첫째 자리까지 출력한다.
[아이디어]
1) n개의 점을 이용해 원점을 꼭짓점으로 하는 삼각형 (n-1)개를 만든다고 생각하자.
2) 반올림을 따로 해줄 필요는 없다.
n = int(input())
g = []
for _ in range(n):
x,y = map(int, input().split())
g.append((x,y))
g.append(g[0])
ans = 0
for i in range(n):
ans += (g[i][0]*g[i+1][1] - g[i][1]*g[i+1][0])
print(abs(ans)/2)
728x90
반응형
'백준(Python) > 기하학(Geometry)' 카테고리의 다른 글
[코딩 테스트 연습(파이썬/Python)] 백준 2162번 _ 선분 그룹 (0) | 2022.03.03 |
---|---|
[코딩 테스트 연습(파이썬/Python)] 백준 17387번 _ 선분 교차 2 (0) | 2022.03.02 |
[코딩 테스트 연습(파이썬/Python)] 백준 11758번 _ CCW(Counter Clockwise) (0) | 2021.12.27 |
[코딩 테스트 연습(파이썬/Python)] 백준 1004번 _ 어린 왕자 (0) | 2021.12.27 |
[코딩 테스트 연습(파이썬/Python)] 백준 1002번 _ 터렛 (0) | 2021.12.02 |