[C++][백준 11758] CCW

PublicMinsu·2023년 12월 2일

문제

접근 방법

기하학 문제이다.
CCW를 활용하여 방향을 확인해 주는 것이다.
CCW는 외적을 이용해서 평면 위의 3점의 방향 관계를 구하는 공식이다.

코드

#include <iostream>
using namespace std;
struct point
{
    int x, y;
} p1, p2, p3;
int ccw(const point &a, const point &b, const point &c)
{
    int ret = (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);
    if (ret < 0)
    {
        return -1;
    }
    else if (ret > 0)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
int main()
{
    ios::sync_with_stdio(0), cin.tie(0);
    cin >> p1.x >> p1.y >> p2.x >> p2.y >> p3.x >> p3.y;
    cout << ccw(p1, p2, p3);
    return 0;
}

풀이


방향에 따라 외적 했을 때 벡터의 Z 값 부호가 달라진다는 점을 활용하는 것이다.

profile
연락 : publicminsu@naver.com

0개의 댓글