2628 종이자르기

Ooleem·2025년 5월 22일
1

백준

목록 보기
1/11


아이디어

일단 자르는 방법을 행, 열로 각각 모은다 (width_order, height_order)
단, 미리 0과 전체 행, 열 값(whole_width, whole_height)을 넣어 놓아야 함

자르고 난 후의 행 : width_order[i+1] - width_order[i]
자르고 난 후의 열 : height_order[i+1] - height_order[i]

구현

whole_width, whole_height = list(map(int, input().split()))
lines = int(input())
widths = []
heights = []
width_order = [0, whole_width]
height_order = [0, whole_height]
areas = []

for _ in range(lines):
    whflag, dotlinenumber = list(map(int, input().split()))
    if whflag:
        width_order.append(dotlinenumber)
    else:
        height_order.append(dotlinenumber)

width_order.sort()
height_order.sort()

for i in range(len(width_order) - 1):
    widths.append(width_order[i + 1] - width_order[i])

for i in range(len(height_order) - 1):
    heights.append(height_order[i + 1] - height_order[i])

for i in widths:
    for j in heights:
        areas.append(i * j)

print(max(areas))

사실 마지막 줄은 max(widths)*max(heights)로 해도 됐을듯.

profile
자동기술법 블로그 (퀵메모 용도)

0개의 댓글