728x90
반응형
문제:
2차원 좌표 평면 위에 있는 점 3개 P1, P2, P3가 주어진다. P1, P2, P3를 순서대로 이은 선분이 어떤 방향을 이루고 있는지 구하는 프로그램을 작성하시오.
입력:
첫째 줄에 P1의 (x1, y1), 둘째 줄에 P2의 (x2, y2), 셋째 줄에 P3의 (x3, y3)가 주어진다. (-10,000 ≤ x1, y1, x2, y2, x3, y3 ≤ 10,000) 모든 좌표는 정수이다. P1, P2, P3의 좌표는 서로 다르다.
출력:
P1, P2, P3를 순서대로 이은 선분이 반시계 방향을 나타내면 1, 시계 방향이면 -1, 일직선이면 0을 출력한다.
풀이방법:
2차원 평면에서 점 3개의 방향을 판단하는 알고리즘을 CCW(Counter Clockwise)라고 한다. 외적을 사용하는 알고리즘인데, 아래 링크에서 자세하게 잘 설명해준 것 같아서 참조하도록 한다.
참고링크: https://degurii.tistory.com/47
1
2
3
4
5
6
7
8
9
10
|
px1, py1 = map(int,input().split())
px2, py2 = map(int,input().split())
px3, py3 = map(int,input().split())
D = (px2-px1)*(py3-py1)-(px3-px1)*(py2-py1)
if D > 0:
print(1)
elif D==0:
print(0)
else:
print(-1)
|
cs |
문제링크:
https://www.acmicpc.net/problem/11758
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
[BOJ]10709. 기상캐스터 (0) | 2022.07.21 |
---|---|
[BOJ]2870. 수학숙제 (0) | 2022.07.19 |
[BOJ]4659. 비밀번호 발음하기 (0) | 2022.07.12 |
[BOJ]2910. 빈도 정렬 (0) | 2022.06.30 |
[BOJ]2828. 사과 담기 게임 (0) | 2022.06.28 |