티스토리 뷰

PS

백준 17386. 선분 교차 1

tose33 2022. 2. 24. 17:21

https://www.acmicpc.net/problem/17386

 

17386번: 선분 교차 1

첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. 세 점이 일직선 위에 있는 경우는 없다.

www.acmicpc.net

 

CCW 알고리즘을 이용.

이번에는  두 선분의 시작점과 끝점이 주어진다.

선분1이 AB고 선분2가 CD 라고 하면 

CCW로 ABC의 방향을 구하고, ABD의 방향을 구한다. 

두 방향이 서로 다르다면 교차한다. 

 

하나의 선분 입장에서 다른 선분이 교차한다는 것은 다른 선분의 한쪽 끝점은 좌측에, 한쪽 끝점은 우측에 있다는 것이다.

예를들어 선분 AB기준으로 C가 좌측(반시계 방향)에 있고, D는 우측(시계 방향)에 있다면 AB와 CD가 교차한다.

 

그런데 주어지는 두번째 예제처럼 CCW(A,B,C)와 CCW(A,B,D)의 방향이 서로 달라도 교차하지 않을수 있다.

따라서 CCW(D,C,A)와 CCW(D,C,B)도 서로 방향이 다른지 판단해야 하고, 

두 경우 모두 서로 방향이 달라야 교차한다. 

 

세점이 평행한 경우는 없다고 주어지므로 CCW의 결과가 0이 될 수 는 없다. 

 

예제1
예제2

 

 

'PS' 카테고리의 다른 글

백준 11728. 배열 합치기  (0) 2022.02.26
백준 2166. 다각형의 면적  (0) 2022.02.24
백준 11758. CCW  (0) 2022.02.24
백준 1011. Fly me to the Alpha Centauri  (0) 2022.02.24
프로그래머스. 자동완성  (0) 2022.02.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
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
글 보관함