그냥 수학 문제다.
P1, P2, P3에 대해 직선 P1P2의 방정식을 구하고, 거기에 x3를 대입해 구한 y값과 y3을 비교하면 끝이다.
P3에서 P2를 중심으로 회전하되, 반직선 P2P1에 도달할 수 있는 가장 가까운 방식으로 회전해야 하기 때문이다.
y값이 y3보다 크면 시계 방향, 작으면 반시계 방향, 같으면 일직선이다.
그림을 그려 표현하면 쉽지만, 귀찮기 때문에 생략하도록 하겠다.
코드는 다음과 같다.
x1,y1=map(int,input().split())
x2,y2=map(int,input().split())
x3,y3=map(int,input().split())
a=(x3-x2)*(y2-y1)
b=(y3-y2)*(x2-x1)
if a>b:
print(-1)
elif a<b:
print(1)
else:
print(0)
처음에는 일차함수의 a, b값을 구해서 문제를 풀려고 했는데, 나눗셈이 들어가서 실수 영역으로 빠져버리니까 오차가 발생했는지 계속 틀렸다.
그래서 결국 나눗셈 부분을 넘겨서 문제를 풀었다.
'BOJ' 카테고리의 다른 글
백준(BOJ) 7344 나무 막대(Python) (0) | 2022.07.09 |
---|---|
백준(BOJ) 17386 선분 교차 1(Python) (0) | 2022.07.09 |
백준(BOJ) 11003 최솟값 찾기(Python) (0) | 2022.07.09 |
백준(BOJ) 18170 두 동전 언리미티드(Python) (0) | 2022.07.08 |
백준(BOJ) 2180 소방서의 고민(Python) (0) | 2022.07.08 |