키워드
2차원 좌표 평면 위에 있는 점 3개 P1, P2, P3가 주어진다. P1, P2, P3를 순서대로 이은 선분이 어떤 방향을 이루고 있는지 구하는 프로그램을 작성하시오.
구현
P1P2 벡터와 P2P3 벡터의 외적을 이용하여 계산한다.
두 벡터의 외적이 0이면 일직선이다.
두 벡터의 외적이 양수면 시계방향이다.
두 벡터의 외적이 음수면 반시계방향이다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class java_11758 {
static Pair pairs[];
static class Pair {
int y, x;
public Pair(int y, int x) {
this.y = y;
this.x = x;
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
pairs = new Pair[3];
for (int i = 0; i < 3; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
pairs[i] = new Pair(y, x);
}
int result = solution();
System.out.println(result);
br.close();
}
private static int solution() {
int ccwResult = CCW();
if (ccwResult == 0) {
return 0;
}
if (ccwResult > 0) {
return 1;
}
return -1;
}
static int CCW() {
return (pairs[1].x - pairs[0].x) * (pairs[2].y - pairs[0].y)
- (pairs[2].x - pairs[0].x) * (pairs[1].y - pairs[0].y);
}
}
Uploaded by N2T
'Coding Test > BOJ' 카테고리의 다른 글
[BOJ/JAVA] 1198번: 삼각형으로 자르기 (0) | 2023.04.03 |
---|---|
[BOJ/JAVA] 1711번: 직각삼각형 (0) | 2023.04.03 |
[BOJ/JAVA] 1701번: Cubeditor (0) | 2023.03.20 |
[BOJ/JAVA] 1599번: 민식어 (0) | 2023.03.20 |
[BOJ/JAVA] 17609번: 회문 (0) | 2023.03.20 |