백준/실버
[백준 15973번] 두 박스 (C++)
게임개발기원
2023. 3. 9. 21:29
문제링크 : https://www.acmicpc.net/problem/15973
15973번: 두 박스
표준 입력으로 두 박스의 정보가 한 줄에 하나씩 주어진다. 각 박스의 정보는 왼쪽 아래 꼭짓점 좌표 (x1, y1)과 오른쪽 위 꼭짓점 좌표 (x2, y2)로 구성되는데 이들 좌푯값 x1, y1, x2, y2 (x1 < x2, y1 < y2)
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pil pair <int, int>
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(0);
int x1, y1, x2, y2, X1, Y1, X2, Y2;
cin >> x1 >> y1 >> x2 >> y2;
cin >> X1 >> Y1 >> X2 >> Y2;
if(x1 > X1)
{
swap(x1, X1);
swap(x2, X2);
}
if(y1 > Y1)
{
swap(y1, Y1);
swap(y2, Y2);
}
if(x2 > X1 && y2 > Y1) //포함될 때
{
cout << "FACE";
}
else if((x2 == X1 && y2 > Y1) || (x2 > X1 && y2 == Y1)) //선이 만날 때
{
cout << "LINE";
}
else if(x2 == X1 && y2 == Y1) //점이 만날 때
{
cout << "POINT";
}
else //아에 만나지 않을 때
{
cout << "NULL";
}
}
첫 사각형의 x1 좌표가 두 번째 사각형의 x1 좌표보다 크다면 x좌표들을 바꿔준다.
이를 안하면 해당 케이스의 경우 아래 조건문은 의미없는 조건문이 된다.
y좌표의 경우도 똑같은 조건하에 바꿔준다.