# Language/Java

명품 JAVA 프로그래밍 2장 8번

명품 자바 Programming 
Chapter2 Ex8

Q :




2차원 평면에서 하나의 직사각형은 두 점으로 표현된다. (50, 50)과 (100, 100)의 두 점으로 이루어진 사각형이 있다고 하자. 이때 키보드로부터 다른 직사각형을 구성하는 두 점 (x1, y1), (x2, y2)를 입력받아 두 개의 직사각형이 서로 충돌하는 지 판별하는 프로그램을 작성하라.









Solution





package com.sh.test;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int x1, y1, x2, y2;
while (true) {
System.out.println("(x1, y1), (x2,y2)의 좌표를 입력하세요. (999 입력 시 종료)");
x1 = s.nextInt();
y1 = s.nextInt();
x2 = s.nextInt();
y2 = s.nextInt();
if (x1 == 999)
break;
System.out.println("입력한 점");
System.out.println("(x1, y1) = " + "(" + x1 + ", " + y1 + ")");
System.out.println("(x2, y2) = " + "(" + x2 + ", " + y2 + ")");
if (
((x1 >= 50 && x1 <= 100) && (y1 >= 50 && y1 <= 100)) ||
((x2 >= 50 && x2 <= 100) && (y2 >= 50 && y2 <= 100)) ||
((y1 >= 50 && y1 <= 100) && (x2 >= 50 && x2 <= 100)) ||
((x1 >= 50 && x1 <= 100) && (y2 >= 50 && y2 <= 100)) ||
((x1 <= 50 && y1 <= 50) && (x2 >= 100 && y2 >= 100))
){
System.out.println("사각형이 겹칩니다.");
}
else {
System.out.println("사각형이 겹치지 않습니다.");
}
}
}
};







Key Point






점 (x1, y1) 이 영역에 들어갔을 때와 점 (x2, y2)가 영역에 들어갔을 때

직사각형이 겹친다.










유용하셨다면 공감 버튼 ↓ 눌러주세요! 


728x90