백준 온라인 저지 [BOJ]/PYTHON [파이썬]

[백준(BOJ)] 11758번 : CCW - PYTHON[파이썬]

퉁이리 2021. 11. 26. 01:10
반응형

https://www.acmicpc.net/problem/11758

 

11758번: CCW

첫째 줄에 P1의 (x1, y1), 둘째 줄에 P2의 (x2, y2), 셋째 줄에 P3의 (x3, y3)가 주어진다. (-10,000 ≤ x1, y1, x2, y2, x3, y3 ≤ 10,000) 모든 좌표는 정수이다. P1, P2, P3의 좌표는 서로 다르다.

www.acmicpc.net

 


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 기하학

 


 

⊙ 문제 접근 과정

 

외적으로 풀면 된다!!

 

p1, p2, p3의 좌표를 입력받고 각각 교차해서 곱해줘서 다 더하고 그 값끼리 빼주면 된다.

 

그 값이 양수면 1, 음수면 -1, 같다면 0 출력


 

⊙ 문제 풀이

 

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


def ccw(p1, p2, p3):
    x1, y1 = p1
    x2, y2 = p2
    x3, y3 = p3
    return (x1 * y2 + x2 * y3 + x3 * y1) - (x2 * y1 + x3 * y2 + x1 * y3)


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

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

 


⊙ 결과

 


⊙ 마무리

 

 

NONE

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형