728x90
https://www.acmicpc.net/problem/2166
문제 요약 : 2차원 평면상에 N(3 ≤ N ≤ 10,000)개의 점으로 이루어진 다각형이 있다. 이 다각형의 면적을 구하라
예제 입력 1:
4
0 0
0 10
10 10
10 0
예제 출력 1 :
100.0
잡다에서 구현역량 테스트 ad 단계 문제를 풀었다.
그런데 도형, 기하학 문제가 나온 것..!
예전에 프로그래머스에서 레벨테스트 했을 때도 도형 문제가 나와서 애를 먹었던 기억이 있었다. 아무래도 일반적인 코테에서 dp나 그래프, 구현 문제가 많으니까 그 위주로만 풀었던 것이 이렇게 큰 편차를 보여준게 아닌가 싶어졌다.
그래서 도전한 기하학, 수학 골드 문제!!😣💪
📌 풀이 )
이렇게 풀면 반칙(?)인가 싶지만, 고등학교 때 입시를 한 학생들이라면 모두 알만한 공식이 있다.
도형의 좌표들을 알고 그 도형의 면적을 구해야할 때에 x좌표 y좌표를 좌르르 작성해서 꼽표 모양으로 만들어서 앞에값에서 뒤에 값 빼는 문제!! (이를 위해 첫 좌표를 마지막에 한번 더 적어줘야한다.)
바로 이 공식이다. 그래서 바로 이 공식을 적용했다.
다각형 도형의 면적 구하기에 대한 내용을 검색해봤는데, 엄청 잘 정리해놓으신 포스팅이 있어서 링크를 걸어놓겠다.
# 다각형의 면적
N = int(input())
figure = []
for _ in range(N):
figure.append(list(map(int,input().split(' '))))
figure.append(figure[0])
answer = 0
for i in range(N):
answer += figure[i][0]*figure[i+1][1] - figure[i+1][0]*figure[i][1]
print(abs(answer)/2)
728x90
'코테 공부 🔥' 카테고리의 다른 글
[백준/파이썬] 9657: 돌 게임3 (1) | 2023.04.11 |
---|---|
[백준/파이썬] 5052: 전화번호 목록 (0) | 2023.04.06 |
[백준/파이썬] 1700 : 멀티탭 스케줄링 (0) | 2023.04.04 |
[백준/파이썬] 1956 : 운동 (0) | 2023.04.01 |
[백준/파이썬] 17427 : 약수의 합 2 (0) | 2023.03.27 |
댓글