접근

마치 수학문제를 푸는 듯한 느낌을 받았다.

가장 먼저 주어지는 두개의 점이 이루는 직선의 식을 구한 후, 세번째 점이 그 직선보다 위에 있는지, 아래에 있는지, 혹은 직선 위에 있는지 구분하여 시계방향, 반시계 방향을 구분하게 된다.

(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)

더 생각해 볼 것?

...

코드나 내용 관련 조언, 부족한 점 및 질문 언제든 환영합니다!

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기