File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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 )
You can’t perform that action at this time.
0 commit comments