
const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'input.txt';
const [p1, p2, p3] = fs
.readFileSync(path)
.toString()
.trim()
.split('\n')
.map((it) => it.split(' ').map(Number));
const [x1, y1] = p1;
const [x2, y2] = p2;
const [x3, y3] = p3;
const v1 = [x2 - x1, y2 - y1];
const v2 = [x3 - x1, y3 - y1];
const product = v1[0] * v2[1] - v1[1] * v2[0];
if (product > 0) console.log(1);
else if (product < 0) console.log(-1);
else console.log(0);
⏰ 소요한 시간 : -
문제 제목부터 CCW. CCW 알고리즘을 사용해서 세 점의 위치관계를 구하는 문제다.
p1, p2, p3가 순서대로 연결되어 있으니까, p1과 p2의 벡터, p1과 p3의 벡터를 구해서 외적하면 p1-p2-p3가 어떤 방향으로 연결되어 있는 지 알 수 있다.
만약 두 벡터의 외적이 양수라면 반시계 방향으로 연결되어 있는것이고, 음수르면 시계방향으로 연결되어 있는것이다.
두 벡터의 외적이 0이라면 세 점이 일직선일 경우이므로 0을 출력한다.