티스토리 뷰
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이 될 수 는 없다.


'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
링크
TAG
- floyd warshall
- db
- back tracking
- 이분탐색
- two pointer
- binary search
- 자료구조
- Tree
- recursion
- greedy
- Python
- Implementation
- Spring
- C++
- Stack
- permutation
- Dijkstra
- DP
- Unity
- priority queue
- Brute Force
- 재귀
- BFS
- dfs
- CSS
- graph
- MVC
- 조합
- C
- Kruskal
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함
