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

 

CCW(counter clockwise)

gaussian37's blog

gaussian37.github.io

위 사이트를 참조하길 바란다.

 

쉽게 말하면 첫번째 좌표를 (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

+ Recent posts