Notice
Recent Posts
Recent Comments
Link
Marryakirise's coding
[Geometry] 백준 Gold5 11758번 CCW 본문
문제


설계 ✨
점을 찍는 순서대로 시계방향과 반시계방향을 결정하는 문제이다.
먼저, 점 p1, p2를 지나가는 직선 그래프를 그려서 생각했다.
이 그래프 위쪽 영역에 점 p3를 찍으면 무조건 반시계방향이고,
이 그래프 아래쪽 영역에 점 p3를 찍으면 무조건 시계방향임을 알아냈다.
그래프의 위쪽 점 p3는 점 p1, p2과 삼각형을 만들었을 때 높이가 '+'이고,
그래프의 아래쪽 점 p3는 점 p1, p2과 삼각형을 만들었을 때 높이가 '-'이다.
따라서 세 점의 좌표를 알 때, 삼각형의 넓이를 구하는 공식 (신발끈 공식)을 이용하여 +,- 방향성을 구할 수 있다.

import sys
# 삼각형 공식
def ccw(p1, p2, p3):
return (p1[0]*p2[1] + p2[0]*p3[1] + p3[0]*p1[1] - (p2[0]*p1[1] + p3[0]*p2[1] + p1[0]*p3[1]))
box = []
for i in range(3):
box.append(tuple(map(int,sys.stdin.readline().split())))
result = ccw(box[0], box[1], box[2])
if result < 0:
print(-1)
elif result > 0:
print(1)
else:
print(0)'Algorithm > Baekjoon' 카테고리의 다른 글
| [BFS] 백준 Sliver1 2178 미로 탐색 (0) | 2023.12.03 |
|---|---|
| [Deque] 백준 Gold5 5430 AC (0) | 2023.03.22 |
| [BFS,DFS] 백준 Sliver1 1697 숨바꼭질 (0) | 2023.03.16 |
| [BFS, DFS] 프로그래머스 lv2. 타겟 넘버 (0) | 2023.02.14 |
| [Greedy] Sliver 2 A -> B (0) | 2023.01.18 |
Comments