HSAT 기출 2회: 사물인식 최소 면적 산출 프로그램

PEA은하·2023년 8월 31일

import sys

N, K = map(int, sys.stdin.readline().split())
bbox = {i: [] for i in range(K + 1)}

for _ in range(N):
    x, y, k = map(int, sys.stdin.readline().split())
    bbox[k - 1].append((x, y))

def dfs(k, xmin, xmax, ymin, ymax, answer):
    if k == K:
        area = (xmax - xmin) * (ymax - ymin)
        return min(answer, area)

    for idx in range(len(bbox[k])):
        x, y = bbox[k][idx]
        new_xmax, new_xmin = max(xmax, x), min(xmin, x)
        new_ymax, new_ymin = max(ymax, y), min(ymin, y)

        if answer <= (new_xmax - new_xmin) * (new_ymax - new_ymin):
            continue
            
        answer = dfs(k + 1, new_xmin, new_xmax, new_ymin, new_ymax, answer)
    return answer


print(dfs(0, 1000, -1000, 1000, -1000, float('inf')))

0개의 댓글