728x90
반응형
https://www.acmicpc.net/problem/2166
입력으로 꼭짓점의 좌표가 순서대로 들어오는데,
순서대로라는 점을 보아
신발끈 공식을 사용하면 될 것 같다.
신발끈 공식은
꼭짓점의 좌표를 순서대로 늘어놓고, 교차로 곱하고 빼면서 다각형의 넓이를 구하는 공식이다.
자세한 계산방법은
https://namu.wiki/w/%EC%8B%A0%EB%B0%9C%EB%81%88%20%EA%B3%B5%EC%8B%9D
여기 나무위키에 이해하기 쉽게 나와있다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class P2166 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n= Integer.parseInt(br.readLine());
long[][] arr=new long[n+1][2];
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());
//[i][0]==x, [i][1]==y
}
arr[n][0]=arr[0][0];
arr[n][1]=arr[0][1];
long result=0;
for(int i=0;i<n;i++) {
result+=((arr[i][0]*arr[i+1][1])-(arr[i][1]*arr[i+1][0]));
}
result=Math.abs(result);
System.out.println(String.format("%.1f", result/2.0));
}
}
728x90
반응형
'코딩 > 백준-자바' 카테고리의 다른 글
[자바] 백준 14500번: 테트로미노 (0) | 2023.02.10 |
---|---|
[자바] 백준 14499번: 주사위 굴리기 (0) | 2023.02.09 |
[자바] 백준 11758번: CCW (0) | 2023.02.07 |
[자바] 백준 1915번: 가장 큰 정삼각형 (0) | 2023.02.06 |
[자바] 백준 1932번: 정수 삼각형 (0) | 2023.02.05 |
댓글