본문 바로가기

알고리즘/정리

마름모 내부의 점 x, y : 점의 x, y좌표 centerX, centerY : 마름모의 x, y좌표 a : 가로 길이의 절반 b : 세로 길이의 절반 마름모 방정식 : | x - centerX | / a + | y - centerY | / b = 1 따라서 마름모 내부에 존재하는 지 알려면 | x - centerX | / a + | y - centerY | / b
선분 교차 알고리즘 <CCW 이용> http://jason9319.tistory.com/358 위의 블로그에서 보고 배웠습니다. CCW : CounterClockWise의 약자로 뜻은 '시계 반대 방향'을 의미한다. 세 가지 점 (a, b, c)가 주어졌을 때, a->b->c 가 1. 시계방향2. 반시계방향3. 평행 중 어떤 경우인지를 분별해주는 알고리즘이다. (x2 - x1)(y3 - y1) - (y2 - y1)(x3 - x1)의 값이 0보다 큰 경우 : 반 시계 방향 0인 경우 : 평행 0보다 작은 경우 : 시계 방향 * 위의 굵은 색 식의 값을 2로 나누면 삼각형의 넓이가 나온다고 한다. 굵은 색의 식을 나열하면 x1y2 + x2y3 + x3y1 - x1y3 - x2y1 - x3y2 가 된다. 이 식을 코드로 나타내면 아래 op와 관..
콜라한캔 :: 하노이의 탑 재귀를 이용해 푸는 대표적 문제들 중 하나인 하노이의 탑은 이해하기 정말 힘든 문제였다. 하노이의 탑 문제 : https://ko.wikipedia.org/wiki/%ED%95%98%EB%85%B8%EC%9D%B4%EC%9D%98_%ED%83%91 위의 그림과 같이 한 곳에 모여져 있는 원판을 아래의 조건을 지키면서 다른 기둥으로 옮기는 문제이다. 1. 한 번에 한 개씩 옮길 수 있다. 2. 자신보다 작은 원판의 위에 올라갈 수 없다. n 개의 원판을 옮기는데 필요한 최소 경우의 수는 2^n - 1개로, 만약 3개의 원판이라면 7번의 옮기는 행동을 통해 해결할 수 있다. A B C 기둥이 있고, A에서 B로 원판을 이동시키려고 한다고 해보자. A에서 B로 원판을 이동시킨다는 것은 풀어..