최대 1 분 소요

1. 문제

https://www.acmicpc.net/problem/2166

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

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

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

// 예제 입력 1 
4
0 0
0 10
10 10
10 0

// 예제 출력 1 
100.0


2. 핵심 아이디어


3. Python 문제풀이

import sys
input = sys.stdin.readline

n = int(input())
x, y = [], []
answer = 0

for _ in range(n) :
  a, b = map(int,input().split())
  x.append(a)
  y.append(b)
  
x, y = x + [x[0]], y + [y[0]]

for i in range(n) :
  answer += (x[i] * y[i+1]) - (x[i+1] * y[i])
  
print(round(abs(answer) / 2, 1))


4. Java 문제풀이


댓글남기기