728x90
https://www.acmicpc.net/problem/2166
다각형의 면적을 구하는 문제이다.
학생 때 배웠던 신발끈 공식을 이용하면 쉽게 문제를 풀 수 있다.
import sys
sys.setrecursionlimit(10 ** 6)
input = sys.stdin.readline
def shoelace():
idx_y = 1
idx_x = 1
ans = 0
for i in range(len(locate)-1):
ans += (locate[i][0] * locate[idx_y][1])
idx_y += 1
ans += locate[-1][0] * locate[0][1]
for i in range(len(locate)-1):
ans -= (locate[idx_x][0] * locate[i][1])
idx_x += 1
ans -= locate[0][0] * locate[-1][1]
print(abs(ans) / 2)
n = int(input())
locate =[]
for _ in range(n):
x, y = map(int,input().split())
locate.append([x,y])
shoelace()
728x90
'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/C++] 1647번 도시 분할 계획 (0) | 2023.01.05 |
---|---|
[백준/C++] 2473번 세 용액 (1) | 2023.01.05 |
[백준/파이썬] 9466번 텀 프로젝트 (1) | 2023.01.03 |
[백준/파이썬] 2252번 줄 세우기 (1) | 2022.12.31 |
[백준/파이썬] 12852번 1로 만들기 2 (0) | 2022.12.30 |