인천의 자유인

[Python] 최소 직사각형 - 프로그래머스(Lv.1) 본문

Python/Python코딩테스트

[Python] 최소 직사각형 - 프로그래머스(Lv.1)

Youngook 2024. 5. 27. 08:49
728x90
반응형

반응형

 

 

나의 문제 풀이

def solution(sizes):
    a = max(map(max, sizes))     #전체 최댓값
    for i in sizes:
        if a in i:
            b = min(i)
    c=b  #변경할 값
    for i in sizes:
        if min(i) >= b and min(i) >= c:
            c = min(i)
    return a*c

 

변수 a는 이차원 배열 안에서 가장 큰 값을 구하는데 쓰는 것입니다. 왜냐하면 해답을 구하기 위해서는 가장 긴 변을 구해야 하기 때문입니다. 그리고 가장 큰 값의 옆에 있는 요소를 구하기 위해 for문을 사용했습니다. 그리고 마지막으로 곱할 다른 변을 구하기 위해 계속 변경을 할 수 있는 변수 c를 따로 만들었습니다. 왜냐하면 적어도 가장 큰 값 옆에 있는 값보다는 크거나 값아야 하기 때문입니다.

 

이것을 한 후에 for문을 돌리는데, for문을 통해서 각 배열마다 작은 요소와 가장 큰 값 옆에 있는 값과 비교를 해서 가장 큰 값과 곱할 요소를 찾습니다. 그것을 완료한 후 return을 하면 정답을 구할 수 있습니다.

중간에 print로 과정을 확인하면서 출력하면 이해하기 쉬울 것입니다.

728x90
반응형