반응형
문제
https://www.acmicpc.net/problem/17386
풀이
CCW를 사용해 풀이할 수 있습니다.
CCW를 사용해 반시계방향이면 1, 시계방향이면 -1, 직선일 때 0을 리턴하도록 하였습니다.
다음과 같이 1, 2, 3, 4 라는 점이 있을 때
123 의 방향과 124의 방향은 반대입니다.
따라서 두 선분은 교차하고 있다고 할 수 있습니다.
하지만 다음과 같은 상황에서는 123과 124의 방향이 반대인데 교차하지 않고 있습니다.
34 선분에 대해서 1과 2에 대한 방향을 검증해주어야 합니다.
341과 342는 같은 방향이므로, 교차하지 않습니다.
따라서 123, 124의 방향이 반대이고 341, 342의 방향도 반대여야지 두 선분이 교차하고 있다고 할 수 있습니다.
이 문제에서는 세 점이 일직선 위에 있는 경우는 없기 때문에 그 점은 고려하지 않았습니다.
소스코드
후기
CCW 문제를 이런식으로 활용할 수도 있구나 하고 느꼈습니다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 20149 선분 교차 3 (Swift) (0) | 2023.05.25 |
---|---|
[BOJ] 백준 17387 선분 교차 2 (Swift) (0) | 2023.05.24 |
[BOJ] 백준 25308 방사형 그래프 (Swift) (0) | 2023.05.24 |
[BOJ] 백준 11758 CCW (Swift) (0) | 2023.05.24 |
[BOJ] 백준 2166 다각형의 면적 (Swift) (0) | 2023.05.24 |