본문 바로가기
Algorithm(CodeTree, Python)/완전탐색2

[코드트리 물체 단위로 완전탐색] 좌표평면 위의 특정 구역 2 python

by kurooru 2022. 12. 15.
# n 입력
n = int(input())
# pos_list
pos_list = list()
# pos_list 입력
for _ in range(n):
    pos_list.append(tuple(map(int, input().split())))

# 함수들
# calc(x, y)
def calc(x, y):
    
    # max_x, min_x, max_y, min_y
    max_x, min_x = -sys.maxsize, sys.maxsize
    max_y, min_y = -sys.maxsize, sys.maxsize

    # 해당 좌표를 제외한 좌표를 탐색
    for curr_x, curr_y in pos_list:
        
        # 해당 좌표라면
        if curr_x == x and curr_y == y:
            # 스킵
            continue
        
        # 아니라면
        else:
            # max_x, min_x 업데이트
            max_x, min_x = max(max_x, curr_x), min(min_x, curr_x)
            # max_y, min_y 업데이트
            max_y, min_y = max(max_y, curr_y), min(min_y, curr_y)
    
    # curr_area 생각해보니 음수 나올일 없음
    curr_area = (max_x - min_x) * (max_y - min_y)

    # 반환
    return curr_area
    
# 설계
# min_area
import sys
min_area = sys.maxsize

# 완전 탐색 시작
for x, y in pos_list:
    # x, y를 제외하고 면적 계산한값과 min_area를 비교하여 업데이트
    min_area = min(min_area, calc(x, y))

# 출력
print(min_area)