문제
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include<iostream>
struct Point {
private:
public:
int x;
int y;
};
int CCW(int x1, int y1, int x2, int y2, int x3, int y3) {
return (x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1);
}
int main() {
Point P1, P2, P3;
std::cin >> P1.x >> P1.y;
std::cin >> P2.x >> P2.y;
std::cin >> P3.x >> P3.y;
int result = CCW(P1.x, P1.y, P2.x, P2.y, P3.x, P3.y);
if (result == 0) {
std::cout << 0 << "\n";
}
else if (result > 0) {
std::cout << 1 << "\n";
}
else {
std::cout << -1 << "\n";
}
}
|
후기
CCW은 2차원 좌표 평면 위에 있는 3개의 점에 대한 방향을 알 수 있게 해주는 알고리즘 중 하나로 자세한 내용은
과련 글에 작성을 진행하였다.
CCW을 이용한 알고리즘 문제를 풀어보았다. 컨벡스 헐(Convex Hull) 알고리즘에 기본이 되는 알고리즘인 만큼 다음 알고리즘도 배워볼 예정이다.
출처 및 레퍼런스
문제 링크:https://www.acmicpc.net/problem/11758
관련 글
[자료구조 알고리즘/기타 알고리즘(Other)] - CCW(Counter Clock Wise)
'온라인 코딩 > 수학(Math)' 카테고리의 다른 글
[프로그래머스] 콜라츠 추측 (0) | 2020.06.26 |
---|---|
[백준] 17386번 선분 교차 1 (0) | 2020.05.01 |
[백준] 4504번 배수 찾기 (0) | 2020.04.11 |
[백준] 2581번 소수 (0) | 2020.04.03 |
[백준] 1978번 소수 찾기 (0) | 2020.02.08 |