베오
DCode
베오
전체 방문자
오늘
어제
  • 분류 전체보기 (218)
    • 공지사항 (1)
    • 잡설 (1)
    • Programming (33)
      • [C] (1)
      • [Java] (4)
      • [Python] (2)
      • [Android] (2)
      • [Network] (0)
      • [Operation System] (2)
      • [Spring Boot] (22)
      • [Docker] (0)
    • Algorithm (31)
      • 자료구조 (2)
      • 알고리즘 (Java) (14)
      • 알고리즘 (기초) (15)
    • Coding Test (131)
      • BOJ (131)
      • Algospat (0)
    • 이론적인거 (14)
      • 보안 (5)
      • 오류 해결 (2)
      • 디자인 패턴 (5)
      • 네트워크 (1)
      • 기타 (1)
    • 최신기술 (4)
      • 블록체인 (1)
    • [Project] (1)

블로그 메뉴

  • 🐈‍⬛ GitHub
  • 📫 방명록
  • 🔖 태그

공지사항

인기 글

티스토리

hELLO · Designed By 정상우.
베오

DCode

Coding Test/BOJ

[BOJ/JAVA] 11758번: CCW

2023. 4. 3. 18:03
11758번: CCW
https://www.acmicpc.net/problem/11758

키워드

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
    'Coding Test/BOJ' 카테고리의 다른 글
    • [BOJ/JAVA] 1198번: 삼각형으로 자르기
    • [BOJ/JAVA] 1711번: 직각삼각형
    • [BOJ/JAVA] 1701번: Cubeditor
    • [BOJ/JAVA] 1599번: 민식어
    베오
    베오

    티스토리툴바