PS
[python] 선분 교차 1 (백준 17386번)
jungh150c
2024. 5. 26. 03:51
https://www.acmicpc.net/problem/17386
#python
import sys
input = sys.stdin.readline
x1, y1, x2, y2 = map(int, input().split())
x3, y3, x4, y4 = map(int, input().split())
def ccw(x1, y1, x2, y2, x3, y3):
ccw = (x1 * y2 + x2 * y3 + x3 * y1) - (x2 * y1 + x3 * y2 + x1 * y3)
if ccw > 0:
return 1
elif ccw < 0:
return -1
else:
return 0
l1p3 = ccw(x1, y1, x2, y2, x3, y3)
l1p4 = ccw(x1, y1, x2, y2, x4, y4)
l2p1 = ccw(x3, y3, x4, y4, x1, y1)
l2p2 = ccw(x3, y3, x4, y4, x2, y2)
if l1p3 * l1p4 < 0 and l2p1 * l2p2 < 0:
print(1)
else:
print(0)
ccw의 결과값을 통해 세 점의 위치 관계를 파악할 수 있다.
ccw = (x1 * y2 + x2 * y3 + x3 * y1) - (x2 * y1 + x3 * y2 + x1 * y3)
(정답)