#문제
레벨: G5
알고리즘: 수학(신발끈 공식)
풀이시간: 10분
힌트 참조 유무: 유
https://www.acmicpc.net/problem/2166
#문제 풀이
신발끈 공식
고등학생 때 배웠던 것 같은데 까먹었다. 아닌가 중학교 때 배웟나. 어찌 됐든 도형의 넒이 구하는 공식은 기억하는게 좋을 것 같아 따로 남겨놓는다.
신발끈 공식은 간단하다. 빨간색으로 이어진 숫자끼리 곱하고 다른 빨간색선들이랑 더해준다. 파란색도 마찬가지로 파란색끼리 합쳐준다. 그리고 Math.abs(빨간색 총합 - 파란색 총합) /2 해주면 도형의 넓이가 나온다.
#풀이 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
long[] x = new long[N + 1];
long[] y = new long[N + 1];
long sum_a = 0, sum_b = 0;
for (int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
x[i] = Integer.parseInt(st.nextToken());
y[i] = Integer.parseInt(st.nextToken());
}
x[N] = x[0];
y[N] = y[0];
for (int i = 0; i < N; i++) {
sum_a += x[i] * y[i + 1];
sum_b += x[i + 1] * y[i];
}
String area = String.format("%.1f", (Math.abs(sum_a - sum_b) / 2.0));
bw.write(area);
br.close();
bw.flush();
bw.close();
}
}
'알고리즘 > 수학' 카테고리의 다른 글
[백준 16565] N포커 / 자바 / 수학(포함배제원리 + 모듈러 연산) (0) | 2024.09.23 |
---|---|
[백준 12850] 본대 산책2 / 자바 / 수학 (0) | 2024.09.12 |
[백준 11401] 이항 계수3 / 자바 / 수학(파스칼 + 모듈러) (0) | 2024.08.09 |
[백준 1016] 제곱 ㄴㄴ 수 / 자바 / 수학(에라토스테네스의 체) (0) | 2024.08.08 |