✔ CCW
문제 분석하기
전형적인 CCW 문제
손으로 풀어보기
- P₁, P₂, P₃ 3개의 점을 입력받아 변수에 저장하고, CCW를 계산
- CCW 결괏값에 따라 정답을 출력
슈도코드 작성하기
x1, y1, x2, y2, x3, y3 (세 점의 x, y 좌표값을 저장하는 변수)
세 점의 정보를 x1, y1, x2, y2, x3, y3에 입력받기
CCW 수행
결과가 양수이면 1, 음수이면 -1, 0이면 0을 출력하기
코드 구현하기
/**
* 11758) CCW
*/
public class D097_11758 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
// x1, y1, x2, y2, x3, y3 (세 점의 x, y 좌표값을 저장하는 변수)
// 세 점의 정보를 x1, y1, x2, y2, x3, y3에 입력받기
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());
// CCW 수행
int result = (x1 * y2 + x2 * y3 + x3 * y1) - (x2 * y1 + x3 * y2 + x1 * y3);
// 결과가 양수이면 1, 음수이면 -1, 0이면 0을 출력하기
int answer = 0;
if (result > 0)
answer = 1;
else if (result < 0)
answer = -1;
else
answer = 0;
System.out.println(answer);
}
}
'Coding Test > Java 알고리즘 실전' 카테고리의 다른 글
[2162] 선분 그룹 (0) | 2023.10.15 |
---|---|
[17387] 선분 교차 2 (0) | 2023.10.14 |
[14003] 가장 긴 증가하는 부분 수열 5 (0) | 2023.10.12 |
[2098] 외판원 순회 (0) | 2023.10.11 |
[11049] 행렬 곱셈 순서 (0) | 2023.10.10 |