격자상 두 개의 직사각형은 겹치는 부분의 특성에 따라 다음 4가지로 분류할 수 있다.
a. 겹치는 부분이 직사각형인 경우
b. 겹치는 부분이 선분인 경우
c. 겹치는 부분이 점인 경우
d. 겹치는 부분이 없는 경우
주어진 두 직사각형의 겹치는 부분이 위 중 무엇인지 출력하라
Implementation
⏰29분⏰
특별한 알고리즘이 필요 없는 단순한 구현 문제였습니다.
겹치지 않는 경우부터 역순으로 조건문을 구현해 풀었습니다.
import sys
if __name__ == "__main__":
input = sys.stdin.readline
for _ in range(4):
x1,y1,p1,q1,x2,y2,p2,q2 = map(int, input().split())
# case (d)
if p1 < x2 or p2 < x1 or y1 > q2 or q1 < y2:
print('d')
continue
elif x1==p2 or x2==p1:
# case (c)
if q1==y2 or q2==y1:
print('c')
continue
# case (b)
else:
print('b')
continue
elif q1==y2 or q2==y1:
print('b')
continue
# case (a)
else:
print('a')
continue