https://www.acmicpc.net/problem/2166
기하학에 관련된 문제다. 다각형의 면적을 계산하는 방법만 안다면 쉽게 풀 수 있는 문제다.
풀이
https://ko.wikipedia.org/wiki/신발끈_공식
신발끈 공식을 이용하여 풀었다. 다각형을 이루는 모든 꼭지점의 좌표를 알면 좌표를 이용해 다각형을 여러 개의 삼각형으로 쪼개 넓이를 구하는 공식이다.
다각형의 넓이 = 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 |