[백준11758_자바스크립트(javascript)] - CCW

경이·2025년 7월 14일

𝑩𝑶𝑱 (𝒋𝒔)

목록 보기
311/325

🔴 문제

CCW


🟡 Sol

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가 순서대로 연결되어 있으니까, p1p2의 벡터, p1p3의 벡터를 구해서 외적하면 p1-p2-p3가 어떤 방향으로 연결되어 있는 지 알 수 있다.

만약 두 벡터의 외적이 양수라면 반시계 방향으로 연결되어 있는것이고, 음수르면 시계방향으로 연결되어 있는것이다.
두 벡터의 외적이 0이라면 세 점이 일직선일 경우이므로 0을 출력한다.


🔵 Ref

profile
록타르오가르

0개의 댓글