Python/알고리즘

완전탐색 Level 1 최소직사각형 - python (프로그래머스)

구름용 2023. 6. 23. 16:47

코드

def solution(sizes):
    
    width = []
    height = []
    answer = 0
    for i in range (len(sizes)):
        width.append(max(sizes[i]))
        height.append(min(sizes[i]))
    print(width, height)
    answer=max(width)*max(height)
    return answer

 

풀이

해당 문제는 특정 조건에 따라서 가로, 세로로 명함을 회전시킬 수 있다는 조건이 있다. 따라서 해당 기준을 가로로 할 것인지 세로로 할 것인지 정해야 했다.

나는 여기서는 가로를 최대 길이가 오도록 정하였다.(보통 명함은 가로가 더 길기 때문에) 따라서 명함들을 순회하며 가로, 세로 길이 중 가장 긴 값을 width 배열에 저장하고 반대로 세로 길이의 경우 더 작은 값을 height 배열에 담는다.

마지막으로 width에서 가장 긴 가로 길이와 height에서 가장 긴 길이를 택하여 명함을 만들면 된다.