(python3)
2166번: 다각형의 면적
첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.
www.acmicpc.net
신발끈 공식으로 다각형 면적 구하기
다각형의 점은 순서대로 주어집니다. 랜덤하게 주어지는 경우도 생각해봤는데, 랜덤한 좌표는 다각형이 특정되지 않기 때문에 풀이가 안되더라구요.
순서대로 주어진 좌표를 신발끈 공식에 넣어서 해결할 수 있습니다.
신발끈 공식은 오목, 볼록 다각형 모두에 공통적으로 적용됩니다.
코드
import sys
def solution(input) :
N = int(input().strip())
P = []
for _ in range(N) :
P.append(tuple(map(int, input().split())))
P.append(P[0]) # 신발끈 공식을 위해 첫번째 좌표를 맨 뒤에 한번 더 추가
# 신발끈 공식
sum1 = 0
sum2 = 0
for i in range(N) :
sum1+=P[i][0]*P[i+1][1]
for i in range(1,N+1) :
sum2+=P[i][0]*P[i-1][1]
print(round(abs(sum1-sum2)/2,1))
input = sys.stdin.readline
solution(input)
my solved.ac :
solved.ac
알고리즘 문제해결 학습의 이정표 🚩 Baekjoon Online Judge 문제들의 난이도 및 티어 정보를 제공하는 사이트입니다.
solved.ac
'Algorithem > 백준 PS with code' 카테고리의 다른 글
백준 #3758 - [S3] KCPC : 정렬 (0) | 2023.06.12 |
---|---|
백준 #2467 - [G5] 용액 : binary search (이진탐색) (1) | 2023.06.10 |
백준 #20529 - [S1] 가장 가까운 세 사람의 심리적 거리 : 비둘기집원리 (2) | 2023.06.08 |
백준 #14940 - [S1] 쉬운 최단거리 : BFS, Queue (0) | 2023.06.07 |
백준 #21608 - [G5] 상어 초등학교 : 구현 (0) | 2023.06.05 |