반응형
풀이 과정만 알면 쉬운 문제였지만, 까다로운 수학난이도로 인해 난이도가 올라갔을 것으로 추정된다.
문제
2차원 평면상에 N(3 ≤ N ≤ 10,000)개의 점으로 이루어진 다각형이 있다. 이 다각형의 면적을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.
출력
첫째 줄에 면적을 출력한다. 면적을 출력할 때에는 소수점 아래 둘째 자리에서 반올림하여 첫째 자리까지 출력한다.
구현
N = int(input())
ass = [[]]*N
for i in range(N):
ass[i] = list(map(int, input().split()))
ass.append(ass[0])
left=0
right =0
import math
for i in range(N):
left+=ass[i][0]*ass[i+1][1]
right +=ass[i][1]*ass[i+1][0]
print(((round(abs(left-right)/2*100)//10)/10))
참고문헌
반응형
'알고리즘' 카테고리의 다른 글
백준 17387번 선분 교차2 파이썬 골드2 기하 (0) | 2021.01.18 |
---|---|
백준 11758번 CCW 골드5 기하 파이썬 (0) | 2021.01.15 |
백준 13458번 시험감독 파이썬 브론즈2 (0) | 2021.01.14 |
백준 1717번 집합의 표현 파이썬 유니온 파인드 골드4 (0) | 2021.01.10 |
최단 경로 알고리즘 (0) | 2021.01.10 |