프로그래머스 - 최소 직사각형

GGob2._.·2023년 4월 13일
0

algorithm

목록 보기
9/55

문제 설명

명함에 대한 가로 길이와 세로 길이가 주어지고, 모든 명함을 담을 수 있는 지갑의 크기를 구하는 문제다.

접근 방식

  • 세로 길이가 가로 길이보다 길면 값을 바꿔준다. (명함을 눕힌다)

  • 각 배열의 첫 번째 원소를 기준으로 정렬한 뒤 최대 값을 추출

  • 각 배열의 두 번째 원소를 기준으로 정렬한 뒤 최대 값을 추출

작성한 코드

def solution(sizes):
    answer = 1
    
    for i in range(len(sizes)):
        width, height = sizes[i]
        if width < height:
            sizes[i][0] = height
            sizes[i][1] = width
    
    sizes.sort(key= lambda x: x[0])
    max_width = sizes[-1][0]
    
    sizes.sort(key= lambda x: x[1])
    max_height = sizes[-1][1] 
    
    answer = max_width * max_height
    return answer
profile
소통을 잘하는 개발자가 되고 싶습니다.

0개의 댓글