본문 바로가기
알고리즘/[python] 백준 BOJ

[python] 백준 2628 종이자르기

by Alan_Kim 2024. 2. 16.
728x90
반응형

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

 

2628번: 종이자르기

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

www.acmicpc.net

 

문제 해결

  • 종이를 자르고 가장 큰 넓이를 구하는 문제
  • 자른 부분의 좌표를 가로, 세로로 나눠서 오름차순으로 정렬한 다음 반복문을 통해 가장 큰 넓이를 출력하면 되는 문제

 

CODE

import sys
input = sys.stdin.readline


def solve():
    result = 0
    for i in range(len(width)-1):
        for j in range(len(height)-1):
            x = width[i+1] - width[i]
            y = height[j+1] - height[j]
            result = max(result, x*y)
    return result

if __name__ == "__main__":
    w, h = map(int, input().split())
    width = [0, w]
    height = [0, h]
    for _ in range(int(input())):
        a, b = map(int, input().split())
        if a:
            width.append(b)
        else:
            height.append(b)
    width = sorted(width)
    height = sorted(height)
    answer = solve()
    print(answer)
728x90
반응형

댓글