코딩테스트 연습 > 최소직사각형
1. 풀이 설명
- 직사각형은 짧은 변과 긴 변으로 이루어져 있다. (두 변의 길이는 같을 수 있다.)
주어진 sizes
에서 짧은 변들 중 최대값과 긴 변들 중 최대값을 선택하여 곱한 값을 반환한다
2. 나의 풀이
python
def solution(sizes):
list_min = []
list_max = []
for size in sizes:
list_min.append(min(size[0], size[1]))
list_max.append(max(size[0], size[1]))
return max(list_min) * max(list_max)
kotlin
fun solution(sizes: Array<IntArray>): Int {
var maxMax = 0
var maxMin = 0
sizes.forEach { size ->
size.sort()
maxMin = Math.max(size[0], maxMin)
maxMax = Math.max(size[1], maxMax)
}
return maxMax * maxMin
}
3. 배운점
python
(min(size[0], size[1])
== min(size)
- 추가 list 를 정의하지 않고 풀이를 할 수 있다.
def solution(sizes):
return max(min(size) for size in sizes) * max(max(size) for size in sizes)
kotlin
IntArray
의 최솟값은 minOf { }
로 구할 수 있다.
size.sort()
size[0]
size.minOf { it }