
신발끈 공식을 사용해 풀 수 있는 문제이다. 신발끈 공식이란 다각형의 꼭짓점 좌표가 주어졌을 때 꼭짓점 좌표를 사용해 다각형의 면적을 계산하는 간단한 방법이다. 이 공식의 이름은 좌표 값을 곱해서 더하고 빼는 과정이 마치 신발끈을 묶는 모양과 비슷해서 붙여졌다.
입력의 범위가 10만이고 둘을 곱하면 int의 크기를 넘어가서 long으로 선언해야한다. 이것때문에 계속 틀렸다.
import java.util.*;
import java.io.*;
class Main {
public static void main (String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Long [][] arr = new Long[n][2];
double xy = 0;
double yx = 0;
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
arr[i][0] = Long.parseLong(st.nextToken());
arr[i][1] = Long.parseLong(st.nextToken());
}
for (int i = 0; i < n; i++) {
xy += arr[i][0] * arr[(i + 1) % n][1];
yx += arr[i][1] * arr[(i + 1) % n][0];
}
double area = Math.abs(xy - yx) / 2.0;
System.out.println(String.format("%.1f", area));
}
}
