-
[백준] 2166번 다각형의 면적(파이썬)Coding Test/Algorithm 2021. 8. 6. 21:29
https://www.acmicpc.net/problem/2166
처음에 다각형 면적을 도대체 어떻게 구해야하는지 어리둥절했었는데 공식을 알고나서 매우 쉽다는 것을 알았다.
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
이 글이 한줄기 빛과 같았다.
공식을 코드로 작성해서 쉽게 풀었다.
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