끄적끄적 코딩
article thumbnail

다각형을 이루는 꼭지점의 좌표가 주어집니다.
해당  다각형의 면적을 구하는 문제입니다.

신발끈 공식을 사용해서 다각형의 면적을 구했습니다.

꼭지점 좌표가 아래와 같을 경우
1 5
2 6
3 7
4 8

(왼쪽 대각선)
1 * 6
2 * 7
3 * 8
4 * 5

(오른쪽 대각선)
5 * 2 
6 * 3
7 * 4
8 * 1

(왼쪽 대각선 구한값) - (오른쪽 대각선 구한값) / 2

import java.io.*;
import java.util.*;

public class Main {
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    int n = Integer.parseInt(br.readLine());
    long[][] arr = new long[n + 1][2];
    long result = 0;

    for (int i = 0; i < n; ++i) {
      StringTokenizer st = new StringTokenizer(br.readLine());
      arr[i][0] = Integer.parseInt(st.nextToken());
      arr[i][1] = Integer.parseInt(st.nextToken());
    }
    arr[n][0] = arr[0][0];
    arr[n][1] = arr[0][1];

    long a = 0L;
    long b = 0L;
    for (int i = 0; i < n; ++i) {
      result += arr[i][0] * arr[i + 1][1] - arr[i][1] * arr[i + 1][0];
    }

    bw.write(String.format("%.1f", (Math.abs(result) / 2.0)) + "\n");
    bw.close();
  }
}

검색 태그