실험실
  • [백준] 17386번: 선분 교차 1 - 파이썬
    2024년 11월 07일 08시 28분 01초에 업로드 된 글입니다.
    작성자: B1NK
    728x90
    • 백준 링크: 17386번: 선분 교차 1
    • solved.ac 난이도: 골드 III
    • 시간 제한: 0.25 초 (추가 시간 없음)
    • 메모리 제한: 512 MB

    문제

    2차원 좌표 평면 위의 두 선분 L1, L2가 주어졌을 때, 두 선분이 교차하는지 아닌지 구해보자.

    입력

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

    출력

    L1과 L2가 교차하면 1, 아니면 0을 출력한다.

    코드

    import sys
    input = sys.stdin.readline
    def ccw(x1, y1, x2, y2, x3, y3):
        return  x1*y2 + x2*y3 + x3*y1 - x2*y1 - x3*y2 - x1*y3
    x1, y1, x2, y2 = map(int, input().split())
    x3, y3, x4, y4 = map(int, input().split())
    a=ccw(x1, y1, x2, y2, x3, y3)
    b=ccw(x1, y1, x2, y2, x4, y4)
    c=ccw(x3, y3, x4, y4, x1, y1)
    d=ccw(x3, y3, x4, y4, x2, y2)
    print(1 if a*b<0 and c*d<0 else 0)
    728x90
    댓글