Notice
Recent Posts
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
관리 메뉴

교대최소제곱법

[백준 파이썬 2166번 다각형의 면적] 개발자가 수학을 잘해야하는 이유 본문

코딩테스트

[백준 파이썬 2166번 다각형의 면적] 개발자가 수학을 잘해야하는 이유

옐라크레 2024. 3. 1. 22:17
 

2166번: 다각형의 면적

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

www.acmicpc.net

이 문제를 읽자마자 '어 그거다'라는 생각은 들었지만 기억력 이슈로 인해 푸는데 한참 걸렸다...


좌표로 다각형의 면적을 구한다?

처음에는 헤론의 공식을 생각했지만 그건 좌표가 아니라 선분의 길이를 활용한다는 것을 떠올렸고

대신 고등학교 시절 머리 속에 저장해둔 한 공식을 꺼내왔다

 

n각형의 면적을 구하는 일반식 (단, 예외는 있다!)

 

React, Spring 하는데 왜 수학을 잘해야 해요?

음 사실 이 포스팅을 쓰는 이유는 이 문제가 엄청 의미있거나 어려운 문제여서는 아니다

그냥 이 문제를 풀면서 개발자에게 수학이란 무엇일까? 라는 생각이 들었다

 

크래프톤 정글을 하면서 옆 자리 팀이 도형을 그리는 프로젝트를 하는 것을 보았는데 기술적 챌린지를 찾지 못해 힘들어하는 것을 본 적이 있다

위의 공식으로 웹 상의 x, y좌표를 활용해 도형의 크기 구해 기능에 활용했다면 좋은 챌린지가 나오지 않았을까?

그냥 갑자기 생각났다

 

수학이 중요한 이유는 수학이 기본이기 때문이기도 하지만 

새로운 아이디어를 떠올리기 위해서는 모티브가 필요한데 그것이 수학이 아닐까 생각한다

알고리즘도 그런 의미로 중요한 것이 아닐까


참고자료

 

Area of a polygon algorithm - Math Open Reference

If you know the coordinates of the vertices of a polygon, this algorithm can be used to find the area. The algorithm assumes the usual mathematical convention that positive y points upwards. In computer systems where positive y is downwards (most of them)

www.mathopenref.com