반응형
https://www.acmicpc.net/problem/2527
import sys
input = sys.stdin.readline
for i in range(4):
x1, y1, x2, y2, x3, y3, x4, y4 = map(int, input().split())
if x3 > x2 or x4 < x1 or y3 > y2 or y4 < y1:
print('d')
continue
if [x1, y1] == [x4, y4] or [x2, y1]==[x3, y4] or [x1, y2] == [x4, y3] or [x2, y2] == [x3, y3]:
print('c')
continue
if x4 == x1 and y4 > y1 and y2 > y3:
print('b')
continue
if y4 == y1 and x2 > x3 and x4 > x1:
print('b')
continue
if x3 == x2 and y4 > y1 and y2 > y3:
print('b')
continue
if y3 == y2 and x2 > x3 and x4 > x1:
print('b')
continue
print('a')
기본 도형 문제지만 모르는 상태에서 풀면 굉장히 어려울 수 있다.
우선 겹치는 면적이 존재하는 지 여부를 판단해야 하는데 이때 이 방법을 모르고 있을 시 해맬 가능성이 높다.
너무 많은 경우의 수가 존재하기 때문에 다른 방법 생각말고,, 그냥 이 방법을 외워두자.
if x3 > x2 or x4 < x1 or y3 > y2 or y4 < y1:
print('d')
continue
댓글