[Algorithm] 교점 구하기

buckshot·2024년 9월 25일

알고리즘

목록 보기
14/19
post-thumbnail

코딩 테스트 문제를 풀면서 아주 가끔 두 직선이 주어질 때, 교점을 구하는 문제가 나타나긴 한다.

A xx + B yy + E = 0, C xx + D yy + F = 0 두 선분의 교점을 구하시오.

이 같은 문제가 주어지면 노트와 펜으로 해결하면 상당히 쉬운 문제이다.

그런데 프로그램 언어를 사용하면 해당 공식을 모른다면 다소 어렵거나? 생각을 좀 해야 해결이 가능하다.

보통 YY에 대해 정의하고 나오는 값을 다른 식에 대입을 하여 XX의 값을 구하고, 그 값을 본래의 식에 대입하여 {x,yx,y} 값을 구하면 된다.

그런데 해당 풀이를 직접 코드로 구현하기에는 좀 귀찮은 일이 될 수 있을 것이다.

이러한 문제점을 걱정할 필요없이 간단한 방법으로 해결이 가능하다.

xx == BF×EDAD×BCBF \times ED \over AD \times BC ,, yy == EC×AFAD×BCEC \times AF \over AD \times BC

공식을 이용하면 교점을 상당히 쉽게 구할 수 있으며, 코드로 구현하는데 있어 굉장히 간단한 방법이 된다.

해당 공식을 이용할 때 $AD \times BC = 0 $ 일 경우 두 직선은 평행 또는 동일한 직선일 수 있다는 점을 알고 있어야 한다.

해당 알고리즘을 이용하면 프로그래머스 교점에서 별 만들기 Lv.2 문제를 다소 쉽게 해결할 수 있을 것이다.

profile
let's go insane

0개의 댓글