2166 다각형의 면적

sycho·2024년 1월 23일
0

baekjoon-analysis

목록 보기
17/20

문제

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

Gold V

코드 (Java)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main (String[] args) throws IOException {
        //basic setups
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        long[] x = new long[N+1];
        long[] y = new long[N+1];
        long sum1 = 0, sum2 = 0;

        for (int i = 0; i < N; ++i) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            x[i] = Long.parseLong(st.nextToken());
            y[i] = Long.parseLong(st.nextToken());
        }
        x[N] = x[0];
        y[N] = y[0];

        //shoelace
        for (int i = 0; i < N; ++i) {
            sum1 += x[i]*y[i+1];
            sum2 += x[i+1]*y[i];
        }

        System.out.printf("%.1f", Math.round(Math.abs(sum1 - sum2) / 2.0 * 10.0) / 10.0);
    }
}

풀이

  • 기하 문제는 오랜만이라 신발끈 정리를 까먹고 있었다(...)

  • 기억하라는 차원에서 기록을 남김.

  • 문제를 풀려고 고민하다가 신발끈 정리를 알아서 유도했...다는건 안비밀

profile
안 흔하고 싶은 개발자. 관심 분야 : 임베디드/컴퓨터 시스템 및 아키텍처/웹/AI

0개의 댓글