
좌표 평면 위의 점 P1, P2, P3가
시계방향인지
반시계방향인지
일직선인지 판단하는 문제입니다
그냥 눈으로 보면 간단한데
골드 난이도라니?!
걱정이 되지만 풀어봅시다
저는 벡터의 외적을 이용했습니다
P1->P2 벡터와
P2->P3 벡터의 외적을 구해서

P1과 P2가 시계 방향으로 흘러가는지
반시계방향으로 흘러가는지
판단할 수 있습니다
코드입니다
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr1 = new int[3];
int[] arr2 = new int[3];
for (int i=0; i<3; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
arr1[i] = Integer.parseInt(st.nextToken());
arr2[i] = Integer.parseInt(st.nextToken());
}
int cross = (arr1[1]-arr1[0])*(arr2[2]-arr2[1])-(arr1[2]-arr1[1])*(arr2[1]-arr2[0]);
if(cross>0) {
System.out.println(cross/cross);
}else if(cross<0) {
System.out.println(-1*cross/cross);
}else {
System.out.println(cross);
}
}
}
외적의 식은 간단합니다
'백준 문제풀기 > JAVA' 카테고리의 다른 글
[백준 13241 JAVA 자바] 최소공배수 (0) | 2023.08.26 |
---|---|
[백준 11866 JAVA 자바] 요세푸스 문제 0 (0) | 2023.08.26 |
[백준 11720 JAVA 자바] 숫자의 합 (0) | 2023.08.25 |
[백준 11718 JAVA 자바] 그대로 출력하기 (0) | 2023.08.25 |
[백준 11660 JAVA 자바] 구간 합 구하기 5 (0) | 2023.08.25 |