728x90
백준 2166 다각형의 면적
문제
2차원 평면상에 N(3 ≤ N ≤ 10,000)개의 점으로 이루어진 다각형이 있다. 이 다각형의 면적을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.
출력
첫째 줄에 면적을 출력한다. 면적을 출력할 때에는 소수점 아래 둘째 자리에서 반올림하여 첫째 자리까지 출력한다.
제출
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
long[] x = new long[N + 1];
long[] y = new long[N + 1];
for (int i = 0; i < N; i++) {
x[i] = sc.nextInt();
y[i] = sc.nextInt();
}
x[N] = x[0];
y[N] = y[0];
double result = 0;
for (int i = 0; i < N; i++) {
result += (x[i] * y[i + 1] - (x[i + 1] * y[i]));
}
String answer =String.format("%.1f", Math.abs(result) / 2.0);
System.out.println(answer);
}
}
예제
4
0 0
0 10
10 10
10 0
결과
2166번: 다각형의 면적
첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.
www.acmicpc.net
728x90
'JAVA > 백준' 카테고리의 다른 글
[Java] 백준 2162 선분 그룹 - 기하(3) (0) | 2023.01.23 |
---|---|
[Java] 백준 17387 선분 교차 2 - 기하(2) (0) | 2023.01.22 |
[Java] 백준 11758 CCW - 기하(1) (0) | 2023.01.21 |
[Java] 백준 14003 가장 긴 증가하는 부분 수열 5 - 동적 계획법(13) (0) | 2023.01.20 |
[Java] 백준 11049 행렬 곱셈 순서 - 동적 계획법(12) (1) | 2023.01.19 |
댓글