접근
마치 수학문제를 푸는 듯한 느낌을 받았다.
가장 먼저 주어지는 두개의 점이 이루는 직선의 식을 구한 후, 세번째 점이 그 직선보다 위에 있는지, 아래에 있는지, 혹은 직선 위에 있는지 구분하여 시계방향, 반시계 방향을 구분하게 된다.
(x1, y1), (x2, y2)를 지나는 직선의 방정식은 아래와 같이 구할 수 있다.
$$ y - y_1 = \frac{y_2 - y_1}{x_2 - x_1} * (x - x_1) $$
이 식의 x 값에 x3을 대입하고 구해지는 y가 y3보다 큰지, 작은지, 같은지에 따라 정답을 출력해주면 된다.
코드
import sys
point = [list(map(int, sys.stdin.readline().split())) for _ in range(3)]
if (point[1][0] - point[0][0]) * (point[2][1] - point[0][1]) > (point[1][1] - point[0][1]) * (point[2][0] - point[0][0]):
print(1)
elif (point[1][0] - point[0][0]) * (point[2][1] - point[0][1]) < (point[1][1] - point[0][1]) * (point[2][0] - point[0][0]):
print(-1)
else:
print(0)
더 생각해 볼 것?
...
코드나 내용 관련 조언, 부족한 점 및 질문 언제든 환영합니다!
반응형
'코딩 > 백준 (Python)' 카테고리의 다른 글
백준 17387번: 선분 교차 2 (Python) (0) | 2021.05.06 |
---|---|
백준 17386번: 선분 교차 1 (Python) (0) | 2021.05.06 |
백준 2166번: 다각형의 면적 (Python) (2) | 2021.05.05 |
백준 1949번: 우수 마을 (Python) (0) | 2021.05.05 |
백준 2533번: 사회망 서비스(SNS) (Python) (0) | 2021.05.05 |
최근댓글