-
[백준/JAVA] 11758 CCW - 기하학ETC/Algorithm 2023. 5. 30. 21:41
문제
CCW
이번 문제는 CCW(Counter Clock Wise)알고리즘 문제이다.
점이 세 개 있을 때, 이 점들을 순서대로 이은 직선의 방향을 찾는 문제다.코드
코드 설명
입력된 점을 순서대로 A, B, C라 했을 때
점 A부터 점 B까지의 벡터를 AB
점 B부터 점 C까지의 벡터를 BC라 했을 때,
벡터 AB와 BC를 외적을 진행한 값이다.제출 코드
import java.io.*; import java.util.*; class Main { static int[][] arr = new int[3][2]; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st; for (int i = 0; i < 3; i++) { st = new StringTokenizer(br.readLine()); arr[i][0] = Integer.parseInt(st.nextToken()); arr[i][1] = Integer.parseInt(st.nextToken()); } bw.write(String.valueOf(CCW())); bw.flush(); } public static int CCW() { int result = (arr[1][0] - arr[0][0]) * (arr[2][1] - arr[0][1]) - (arr[2][0] - arr[0][0]) * (arr[1][1] - arr[0][1]); if (result > 0) { return 1; } else if (result == 0) { return 0; } else { return -1; } } }