본문 바로가기
Engineering WIKI/Programmers

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

by wonos 2022. 4. 5.

 

 

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

[[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

 

아이디어

각 w, h를 비교해서 둘 중 큰 값을 한 리스트에 넣고 나머지를 리스트로 만든다. 두 개의 리스트 중 가장 큰 값을 뽑아서 곱하면 된다.

  1. w, h 리스트를 만든다.
  2. for문을 돌면서 w, h 중 큰 값은 w리스트 작은 값은 h리스트에 담는다.
  3. 두 개의 리스트에서 가장 큰 값이 곱한 값이 답이다.

 

다른 사람 풀이 1

def solution(sizes):
    w = []
    h = []
    for i in range(len(sizes)):
        if sizes[i][0] >= sizes[i][1]:
            w.append(sizes[i][0])
            h.append(sizes[i][1])
        else:
            h.append(sizes[i][0])
            w.append(sizes[i][1])

    return max(w) * max(h)

 

다른사람 풀이 2

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