-
[백준] 2166번 다각형의 면적(파이썬)Coding Test/Algorithm 2021. 8. 6. 21:29
https://www.acmicpc.net/problem/2166
2166번: 다각형의 면적
첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다.
www.acmicpc.net
처음에 다각형 면적을 도대체 어떻게 구해야하는지 어리둥절했었는데 공식을 알고나서 매우 쉽다는 것을 알았다.
https://ko.wikihow.com/%EB%8B%A4%EA%B0%81%ED%98%95-%EB%84%93%EC%9D%B4-%EA%B5%AC%ED%95%98%EA%B8%B0
다각형 넓이 구하기
다각형의 넓이를 계산하는 일은 정삼각형 넓이를 구하는 것처럼 간단하기도 하지만 각 변의 길이가 다른 11각형의 넓이를 구하는 것처럼 복잡하기도 합니다. 다양한 다각형의 넓이를 구하는 방
ko.wikihow.com
이 글이 한줄기 빛과 같았다.
공식을 코드로 작성해서 쉽게 풀었다.
import sys n = int(sys.stdin.readline()) arr = [list(map(int, sys.stdin.readline().split())) for _ in range(n)] arr.append(arr[0]) x = 0 y = 0 for i in range(n): x += arr[i][0] * arr[i+1][1] y += arr[i][1] * arr[i+1][0] result = round((x - y)/2, 1) if result < 0: result *= -1 print(result)
(주석이 없는 나의 상당히 불친절한 코드)사실 설명할만한 부분이 없다........
다만 결과값이 음수로 나오는 경우가 있어서(예시에 나온 테스트 케이스) 그런 부분을 처리해주기 위해서
음수의 결과는 양수로 바꾸어서 출력했다.
솔직히 골드난이도의 문제라고 보기 어려웠다.
'Coding Test > Algorithm' 카테고리의 다른 글
[2021 KAKAO BLIND RECRUITMENT] 메뉴 리뉴얼 (파이썬) (2) 2021.09.11 [백준] 2467번 용액 (파이썬) (0) 2021.08.08 [백준] 나이순 정렬 (10814번 파이썬) (0) 2021.07.16 [백준] 단어정렬 (1181번 파이썬) (0) 2021.07.15 [백준] 체스판 다시 칠하기 (1018번 파이썬) (0) 2021.06.12