접근
수학 문제를 푸는 느낌이었는데 마지막엔 그것이 아니었다. 숫자를 주고 풀어라 하면 너무 쉽게 답을 구할 수 있지만 이를 코딩해라 라고 하니 제대로 구현을 못했다.
정답률이 낮은데에는 이유가 있는 법. 굉장히 오래 해메다가 문제를 해결하였다.
이전 문제에서 사용한 CCW를 체크하는 알고리즘을 이용하여 서로 교차하는지 확인할 수 있었다.
CCW 알고리즘: 2021.05.06 - [코딩/백준 (Python)] - 백준 11758번: CCW (Python)
코드
import sys
x1, y1, x2, y2 = map(int, sys.stdin.readline().split())
x3, y3, x4, y4 = map(int, sys.stdin.readline().split())
def ccw(x1, y1, x2, y2, x3, y3):
tmp = (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1)
if tmp > 0:
return 1
elif tmp < 0:
return -1
else:
return 0
ans = 0
if ccw(x1, y1, x2, y2, x3, y3) * ccw(x1, y1, x2, y2, x4, y4) < 0 and ccw(x3, y3, x4, y4, x1, y1) * ccw(x3, y3, x4, y4, x2, y2) < 0:
ans = 1
print(ans)
더 생각해 볼 것?
...
코드나 내용 관련 조언, 부족한 점 및 질문 언제든 환영합니다!
반응형
'코딩 > 백준 (Python)' 카테고리의 다른 글
백준 20149번: 선분 교차 3 (Python) (0) | 2021.05.07 |
---|---|
백준 17387번: 선분 교차 2 (Python) (0) | 2021.05.06 |
백준 11758번: CCW (Python) (0) | 2021.05.06 |
백준 2166번: 다각형의 면적 (Python) (2) | 2021.05.05 |
백준 1949번: 우수 마을 (Python) (0) | 2021.05.05 |
최근댓글