개발자식

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

Algorithm/Programmers

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

밍츠 2022. 8. 18. 13:30

최소직사각형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

나의 풀이 (12:50 ~ 13:10)

- sizes에서 w,h를 비교하여 h 값이 더 크다면 w,h 값을 바꿔준다.

- 바꿔준 후 sizes에서 w에서 가장 큰 값, h에서 가장 큰 값을 size에 각각 저장하고 두 수를 곱한 값을 return 한다.

def solution(sizes):
    answer = 0
    size = [0,0]

    check = sizes.copy()
    
    for i in range(len(sizes)):
        if sizes[i][0] < sizes[i][1]:
            check[i][0],check[i][1] = check[i][1], check[i][0]
    
    for i in range(len(sizes)):
        if size[0] < sizes[i][0]:
            size[0] = sizes[i][0]
        if size[1] < sizes[i][1]:
            size[1] = sizes[i][1]
    
    return size[0] * size[1]

 

좋은 풀이

- 결국 sizes에서 최소 값 중에 최대 값, 최대 값 중에 최대 값을 곱하는 것이 가장 작은 지갑을 만들 수 있다.

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

'Algorithm > Programmers' 카테고리의 다른 글

[프로그래머스] 실패율  (0) 2022.08.18
[프로그래머스] 소수 만들기  (0) 2022.08.18
[프로그래머스] 가장 먼 노드  (0) 2022.07.01
[프로그래머스] 가장 큰 수  (0) 2022.07.01
[프로그래머스] 모의고사  (0) 2022.07.01
Comments