티스토리 뷰

반응형

문제

 

2628번: 종이자르기

첫줄에는 종이의 가로와 세로의 길이가 차례로 자연수로 주어진다. 가로와 세로의 길이는 최대 100㎝이다. 둘째 줄에는 칼로 잘라야하는 점선의 개수가 주어진다. 셋째 줄부터 마지막 줄까지 한

www.acmicpc.net

풀이

항상 n * m 형태의 2d 어레이를 만들고 시작하는데, 이번에는 그럴필요 없을것 같아서

절취선만 가로 세로 나눠서 받은 후, 이중 포문으로 브루트포싱 해줬다.

import sys

C, R = map(int, sys.stdin.readline().split(" "))
N = int(sys.stdin.readline())

li_c = [0, C]
li_r = [0, R]

for _ in range(N):
    dir, num = map(int, sys.stdin.readline().split(" "))
    if dir == 0:
        li_r.append(num)
    else:
        li_c.append(num)

li_c.sort()
li_r.sort()

m = 0
for i in range(len(li_c) - 1):
    for j in range(len(li_r) - 1):
        m = max(m, (li_c[i + 1] - li_c[i]) * (li_r[j + 1] - li_r[j]))

print(m)

반응형