[Programmers] 최소직사각형 (완전탐색 - 브루트포스 Lv. 1) - Python

꼬마요리사레미·2023년 5월 26일

Algorithm

목록 보기
10/41

1. 문제


최소직사각형

2. 풀이


코드
def solution(sizes):
    max_width = 0
    max_height = 0
    
    for size in sizes:
        width, height = size
        
        if width < height:
            width, height = height, width
        
        max_width = max(max_width, width)
        max_height = max(max_height, height)
    
    answer = max_width * max_height
    return answer
입력 및 출력
sizes = [[60, 50], [30, 70], [60, 30], [80, 40]]

>> 4000

3. 로직


  1. max_widthmax_height 변수를 초기화한다.

  2. sizes 리스트를 반복하면서 각 사각형의 너비와 높이를 widthheight 변수에 할당한다.

  3. 만약 widthheight보다 작다면, 두 값을 교환하여 항상 widthheight보다 크거나 같도록 만든다.

  4. 최대 너비와 최대 높이를 갱신한다. 각각의 값을 현재 사각형의 widthheight 중 더 큰 값으로 업데이트한다.

  5. 반복이 끝나면 최대 너비(max_width)와 최대 높이(max_height)를 곱하여 최소 직사각형의 면적을 구한다.

  6. 구한 면적을 answer 변수에 할당하고 반환한다.

0개의 댓글