Skip to content

Commit 91618f6

Browse files
committed
기하 / 수학은 너무 어렵다
1 parent 19d33ff commit 91618f6

2 files changed

Lines changed: 64 additions & 0 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
2+
/* ************************************************************************** */
3+
/* */
4+
/* ::: ::: ::: */
5+
/* Problem Number: 2166 :+: :+: :+: */
6+
/* +:+ +:+ +:+ */
7+
/* By: thxogh1 <boj.kr/u/thxogh1> +#+ +#+ +#+ */
8+
/* +#+ +#+ +#+ */
9+
/* https://boj.kr/2166 #+# #+# #+# */
10+
/* Solved: 2025/05/05 18:31:23 by thxogh1 ### ### ##.kr */
11+
/* */
12+
/* ************************************************************************** */
13+
import java.io.BufferedReader;
14+
import java.io.InputStreamReader;
15+
import java.util.StringTokenizer;
16+
17+
public class Main {
18+
19+
public static void main(String[] args) throws Exception {
20+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
21+
StringTokenizer st;
22+
int n = Integer.parseInt(br.readLine());
23+
int[][] arr = new int[n + 1][2];
24+
for (int i = 0; i < n; i++) {
25+
st = new StringTokenizer(br.readLine());
26+
arr[i][0] = Integer.parseInt(st.nextToken());
27+
arr[i][1] = Integer.parseInt(st.nextToken());
28+
}
29+
arr[n][0] = arr[0][0];
30+
arr[n][1] = arr[0][1];
31+
double ans = 0;
32+
33+
for (int i = 0; i < n; i++) {
34+
ans += (double) arr[i][0] * arr[i + 1][1];
35+
ans -= (double) arr[i + 1][0] * arr[i][1];
36+
}
37+
System.out.printf("%.1f", Math.abs(ans / 2));
38+
}
39+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# 2166번: 다각형의 면적 - <img src="https://static.solved.ac/tier_small/11.svg" style="height:20px" /> Gold V
2+
3+
<!-- performance -->
4+
5+
<!-- 문제 제출 후 깃허브에 푸시를 했을 때 제출한 코드의 성능이 입력될 공간입니다.-->
6+
7+
<!-- end -->
8+
9+
## 문제
10+
11+
[문제 링크](https://boj.kr/2166)
12+
13+
<p>2차원 평면상에 N(3 ≤ N ≤ 10,000)개의 점으로 이루어진 다각형이 있다. 이 다각형의 면적을 구하는 프로그램을 작성하시오.</p>
14+
15+
## 입력
16+
17+
<p>첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.</p>
18+
19+
## 출력
20+
21+
<p>첫째 줄에 면적을 출력한다. 면적을 출력할 때에는 소수점 아래 둘째 자리에서 반올림하여 첫째 자리까지 출력한다.</p>
22+
23+
## 소스코드
24+
25+
[소스코드 보기](Main.java)

0 commit comments

Comments
 (0)