본문 바로가기
Problem Solving/Geometry

[기하학/파이썬] 백준 2527번: 직사각형 / 실버 1

by ggyongi 2021. 8. 21.
반응형

https://www.acmicpc.net/problem/2527

 

2527번: 직사각형

4개의 줄로 이루어져 있다. 각 줄에는  8개의 정수가 하나의 공백을 두고 나타나는데, 첫 4개의 정수는 첫 번째 직사각형을, 나머지 4개의 정수는 두 번째 직사각형을 각각 나타낸다. 단 입력 직

www.acmicpc.net

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

 

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글