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

 

2166번: 다각형의 면적

첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.

www.acmicpc.net

기하학에 관련된 문제다. 다각형의 면적을 계산하는 방법만 안다면 쉽게 풀 수 있는 문제다.

 

풀이

https://ko.wikipedia.org/wiki/신발끈_공식

 

신발끈 공식 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 신발끈 공식(―公式)은 좌표평면 상에서 꼭짓점의 좌표를 알 때 다각형의 면적을 구할 수 있는 방법이다. 다각형의 각 꼭짓점의 좌푯값을 교차하여 곱하는 모

ko.wikipedia.org

신발끈 공식을 이용하여 풀었다. 다각형을 이루는 모든 꼭지점의 좌표를 알면 좌표를 이용해 다각형을 여러 개의 삼각형으로 쪼개 넓이를 구하는 공식이다.

다각형의 넓이 = ABS(sum1 - sum2) / 2

 

꼭지점이 시계방향 혹은 반시계 반향으로 순차적으로 주어지게 될 경우, 다음과 같이 순환하는 형태로 줄지어 격자 형태로 곱해서 나온 누적합 sum1, sum2의 차를 2로 나누면 다각형의 넓이를 구할 수 있다. 다행히도 문제에 다각형을 이루는 꼭짓점의 순서대로 입력이 되기에 입력되는 순서 그대로 배열에 담아내면 손쉽게 답을 구할 수 있다.

swift에서는 자릿수 반올림 함수가 제공되지 않으므로 원하는 자릿수에서 반올림 하기위해 직전 자릿수까지 10을 곱해준 뒤 반올림 함수 round()를 이용하였고 다시 자릿수만큼 나누어 주었다.

 

정답 코드

'Problem Solving > BOJ' 카테고리의 다른 글

[1105] 팔  (0) 2022.11.24
[12015] 가장 긴 증가하는 부분 수열2  (0) 2022.11.23
[16236] 아기 상어  (0) 2022.11.21
[9019] DSLR  (0) 2022.11.19
[9663] N-Queen  (0) 2022.11.17

+ Recent posts