코딩테스트/백준

[백준] 11758번, CCW

HU_717 2023. 3. 30. 17:26

✏️ 문제

 

💬 아이디어

처음에는 위의 방식처럼 y좌표와, 기울기만 구하면 된다고 생각을 해서 단순하게 풀리는 문제가 아닌가 생각했다.

하지만 많은 경우의 수가 나타나서 공식을 찾아보게 되었다.

위와 같이 좌표로만 구하는 것이 아닌 CCW공식을 사용하는 것이다.

 

✏️ CCW 공식

 

💡 코드

p = []
for _ in range(3):
    p.append(list(map(int, input().split())))

def ccw(p_1, p_2, p_3):
    val = (p_1[0]*p_2[1] + p_2[0]*p_3[1] + p_3[0]*p_1[1]) - (p_2[0]*p_1[1] + p_3[0]*p_2[1] + p_1[0]*p_3[1])
    return val

result = ccw(p[0], p[1], p[2])

if result > 0:
    print(1)
elif result == 0:
    print(0)
else:
    print(-1)

CCW 공식을 사용하면 쉽게 해결가능하다.