코딩테스트 연습/프로그래머스

[Python - 프로그래머스] 코딩테스트 연습 > 완전탐색 > 최소직사각형

슈퍼짱짱 2023. 1. 25. 09:50
반응형

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

 

프로그래머스

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

programmers.co.kr

 


 

Solution

 

1
2
3
4
5
6
7
8
def solution(sizes):
    for i in sizes :
        if i[0< i[1] :
            temp = i[0]
            i[0= i[1]
            i[1= temp
    
    return max([i[0for i in sizes]) * max([i[1for i in sizes])
cs

 

주어진 2차원 배열에 대해 모든 w가 h보다 큰 값을 가지도록 위치를 바꿔준다. (부등호 반대 방향도 가능)

sizes 예시 별 위치를 바꾼 출력 결과는 다음과 같다.

 

아래 <출력> 확인

 

이후 w 중에 최대값, h 중에 최대값을 곱해 return하면 된다.

 


 

다른 사람의 풀이

 

한 줄로 해결한 풀이가 있어서 가져왔다.

 

 

sizes 예시별로 

 

for x in sizes :
	print(max(x), min(x))

 

위 코드의 출력 결과는 다음과 같다.

 

 

[테스트 1]에서 60, 70, 60, 80 중 max는 80이고 / 50, 30, 30, 40 중 max는 50이다.

즉, 80*50 = 4000을 return하게 된다.

 

반응형