def ccw(start,second,third):
vector1 = [second[0]-start[0],second[1]-start[1]]
vector2 = [third[0]-start[0],third[1]-start[1]]
outer = vector1[0]*vector2[1] - vector2[0]*vector1[1]
if outer < 0:
print(-1)
elif not outer:
print(0)
else:
print(1)
P1 = list(map(int,input().split()))
P2 = list(map(int,input().split()))
P3 = list(map(int,input().split()))
ccw(P1,P2,P3)
# https://gaussian37.github.io/math-algorithm-ccw/
기하학과 관련된 문제이다.
CCW에 대한 자세한 설명은
https://gaussian37.github.io/math-algorithm-ccw
위 사이트를 참조하길 바란다.
쉽게 말하면 첫번째 좌표를 (0,0)으로 이동시킨다고 했을 때,
첫번째 좌표에서 두번째 좌표로 가는 벡터 V1과
첫번째 좌표에서 세번쩨 좌표로 가는 벡터 V2를 구해 외적을 구하게 되면,
이 선이 반시계 방향인지, 시계방향인지 직선인지 구할 수 있는 것이다.
위의 사이트에 CCW의 그림과 같이 자세하게 설명되어 있으므로, 위 사이트를 참조하길 바랍니다.
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ/백준] 2873 롤러코스터 (0) | 2021.02.16 |
---|---|
[BOJ/백준] 1600 말이 되고픈 원숭이 (0) | 2021.02.16 |
[BOJ/백준] 5557 1학년 (0) | 2021.02.16 |
[BOJ/백준] 2493 탑 (0) | 2021.02.16 |
[BOJ/백준] 1915 가장 큰 정사각형 (0) | 2021.02.16 |