어흥
[백준 11758] CCW (C++) 본문
728x90
반응형
문제 링크: www.acmicpc.net/problem/11758
(간단한 외적 설명은 imnotabear.tistory.com/324, 자세한 설명은 degurii.tistory.com/47 참조)
1. 주의할 점
- 외적을 이용한 삼각형의 넓이 구하기 공식을 통해 CCW를 구할 수 있도록 한다
2. 구현
- 3개의 좌표를 X[], Y[]배열에 입력 받는다
- BA, CA 반직선에 대한 벡터를 각각 AA[], BB[] 배열에 담는다
- 외적 공식을 통해 둘의 넓이를 구하고, 넓이가 양수면 반시계, 음수면 시계, 0이면 일직선이다
#include <iostream>
using namespace std;
int x[3], y[3];
int ccw(int a, int b, int c) {
int aa[2] = { y[b] - y[a],x[b] - x[a] };
int bb[2] = { y[c] - y[a],x[c] - x[a] };
int result = (aa[0] * bb[1] - aa[1] * bb[0]);
if (result < 0) return 1;
else if (result > 0) return -1;
else return 0;
}
int main() {
for (int i = 0; i < 3; i++)
cin >> x[i] >> y[i];
cout << ccw(0, 1, 2);
return 0;
}
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준 9879] Cross Country Skiing (C++) (0) | 2020.12.08 |
---|---|
[백준 2166] 다각형의 면적 (C++) (2) | 2020.12.05 |
[백준 2170] 선 긋기 (C++) (0) | 2020.12.04 |
[백준 14466] 소가 길을 건너간 이유 6 (0) | 2020.12.04 |
[백준 2116] 주사위 쌓기 (C++) (0) | 2020.12.03 |
Comments