코딩/백준

다각형의 면적 코딩테스트 연습풀이 [백준 2166/파이썬/기하학]

thisisjade 2023. 1. 26. 20:53
728x90

문제출처: https://www.acmicpc.net/problem/2166

 

2166번: 다각형의 면적

첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.

www.acmicpc.net

 

문제

2차원 평면상에 N(3 ≤ N ≤ 10,000)개의 점으로 이루어진 다각형이 있다. 이 다각형의 면적을 구하는 프로그램을 작성하시오.

 

입력

첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.

 

출력

첫째 줄에 면적을 출력한다. 면적을 출력할 때에는 소수점 아래 둘째 자리에서 반올림하여 첫째 자리까지 출력한다.

 

정답

import sys
input = sys.stdin.readline
N = int(input())
x, y = 0,0

arr = [list(map(int, input().split())) for _ in range(N)]
arr.append(arr[0])

for i in range(N):
    x += arr[i][0]*arr[i+1][1]
    y += arr[i+1][0]*arr[i][1]

print(round(abs((x-y)/2),1))

문제를 풀기전에 공식을 알기위해

 

https://ko.wikihow.com/%EB%8B%A4%EA%B0%81%ED%98%95-%EB%84%93%EC%9D%B4-%EA%B5%AC%ED%95%98%EA%B8%B0

 

다각형 넓이 구하기: 15 단계 (이미지 포함) - wikiHow

다각형의 넓이를 계산하는 일은 정삼각형 넓이를 구하는 것처럼 간단하기도 하지만 각 변의 길이가 다른 11각형의 넓이를 구하는 것처럼 복잡하기도 합니다. 다양한 다각형의 넓이를 구하는 방

ko.wikihow.com

 

다각형의 넓이는 구하는 공식을 찾아본 후에 코딩했습니다.

넓이 공식을 이해하면 쉬운 문제였습니다

 

728x90