본문 바로가기

코딩테스트/Python

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

https://programmers.co.kr/learn/courses/30/lessons/86491

 

코딩테스트 연습 - 최소직사각형

[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133

programmers.co.kr

 

 

내 코드

def solution(sizes):
    for s in sizes:
        if s[0] > s[1] : s[0],s[1] = s[1],s[0]
    
    return max([s[0] for s in sizes]) * max([s[1] for s in sizes])

[0]인덱스에 큰값을 넣어주고 [1]인덱스에 작은값을 넣어주었다.

[0] 인덱스들 중에서 가장 큰 값과 [1] 인덱스들 중에서 가장 작은 값의 곱을 return 해주었다.

이때 max를 두번써서 시간이 오래 걸릴거같았지만 문제 푸는데에는 영향을 끼칠것같지 않아 그냥 풀었음!

 

 

 

 

다른사람 코드

def solution(sizes):
    return max(max(x) for x in sizes) * max(min(x) for x in sizes)

앗.. 나는 for문을 돌면서 작은 값을 찾아서 자리를 바꿔주었는데 min과 max를 사용하면 됐었다.. 진짜 바보ㅠㅠ