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

이정연·2022년 11월 2일
0

CodingTest

목록 보기
79/165

💡핵심 아이디어

  • 가장 긴 모서리를 기준으로 모든 명함들을 정렬한다.
  • 튀어 나온 세로 모서리 길이들 중에서 최댓값을 선정해
  • 2개를 곱한 게 답이다.

🖌️참고 그림

  • 일종의 그리디 접근이라고 생각하면 된다.
  • 최소 넓이를 구하는 것이 목표인데 어차피 가장 긴 모서리는 무조건 포함 시켜야하므로 모든 명함의 긴 부분을 기준으로 겹쳐 놓는 것이다.
  • 그러면 어차피 포함시켜야 하는 가장 긴 모서리를 가로로 고정시켜놓고 우리가 조정할 수 있는 부분은 세로 길이이므로 이를 제일 짧게 조정하여 최소 넓이를 구한다.

CODE

def solution(sizes):
    a,b = 0,0
    for s in sizes:
        a = max(a,max(s))
        b = max(b,min(s))
    return a*b
profile
0x68656C6C6F21

0개의 댓글