https://www.acmicpc.net/problem/11758
1. 아이디어
CCW 알고리즘을 구현만 하면 되는 문제로 벡터의 외적을 구하는 ccw 메서드를 작성해서 구현했다.
2. 문제풀이
외적 벡터를 구한 이후 -1, 0, 1로 출력하기 위해 삼항 연산자와 절댓값을 구할 수 있는 Math.abs를 활용했다.
3. 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
int x1 = Integer.parseInt(st.nextToken());
int y1 = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
int x2 = Integer.parseInt(st.nextToken());
int y2 = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
int x3 = Integer.parseInt(st.nextToken());
int y3 = Integer.parseInt(st.nextToken());
System.out.println(ccw(x1, y1, x2, y2, x3, y3));
}
// CCW 알고리즘
private static int ccw(int x1, int y1, int x2, int y2, int x3, int y3) {
int vector = (x1 * y2 - x2 * y1) + (x2 * y3 - x3 * y2) + (x3 * y1 - x1 * y3);
return vector == 0 ? 0 : (vector / Math.abs(vector));
}
}
4. 후기
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 1064번 - 평행사변형 [Java] (0) | 2024.12.05 |
---|---|
[백준] 1027번 - 고층 건물 [Java] (0) | 2024.12.05 |
[백준] 3009번 - 네 번째 점 [Java] (0) | 2024.12.05 |
[백준] 1085번 - 직사각형에서 탈출 [Java] (0) | 2024.12.05 |
[백준] 14681번 - 사분면 고르기 [Java] (0) | 2024.12.05 |