ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준/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;
            }
        }
    }

    댓글

Designed by black7375.