728x90
반응형
https://www.acmicpc.net/problem/2527
2527번: 직사각형
4개의 줄로 이루어져 있다. 각 줄에는 8개의 정수가 하나의 공백을 두고 나타나는데, 첫 4개의 정수는 첫 번째 직사각형을, 나머지 4개의 정수는 두 번째 직사각형을 각각 나타낸다. 단 입력 직사
www.acmicpc.net
문제 해결
- 조건을 잘 분리해서 출력하는 문제
- 우선 겹치지 않는 경우부터 잡는 것이 좋다.
- 두 직사각형 각각의 x, y의 최소 값 좌표와 최댓 값 좌표가 있는데 어떤 직사각형의 최솟값 좌표가 다른 직사각형의 최댓값 좌표보다 큰 것이 존재하면 겹칠 수 없다.(x, y 둘 중 하나라도)
- 만약 어떤 직사각형의 최솟값 좌표가 다른 직사각형 최댓값 좌표와 같은 것이 존재한다면 겹쳐서 선이나 점이 만들어진다.
- 만약 x, y 모두 같다면 점이 만들어지고 아니면 선분이 만들어진다.
- 위의 사항에 해당하지 않으면 무조건 직사각형의 겹치는 공간이 만들어진다.
CODE
import sys
from collections import deque
input = sys.stdin.readline
def solve(x1, y1, p1, q1, x2, y2, p2, q2):
if p1< x2 or p2 < x1 or y1 > q2 or q1 < y2:
print('d')
elif x1==p2 or x2==p1:
if q1 == y2 or q2 == y1:
print('c')
else:
print('b')
elif q1==y2 or q2==y1:
print('b')
else:
print('a')
if __name__ == '__main__':
for _ in range(4):
x1, y1, p1, q1, x2, y2, p2, q2 = map(int, input().split())
solve(x1, y1, p1, q1, x2, y2, p2, q2)
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 23258 밤편지 (0) | 2024.02.18 |
---|---|
[python] 백준 2628 종이자르기 (0) | 2024.02.16 |
[python] 백준 27172 수 나누기 게임 (1) | 2024.02.14 |
[python] 백준 2092 집합의 개수 (0) | 2024.02.09 |
[python] 백준 1943 동전 분배 (1) | 2024.02.07 |
댓글