Lv1. 최소직사각형

Hello·2022년 7월 24일
0

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

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

  1. (min(size[0], size[1]) == min(size)
  2. 추가 list 를 정의하지 않고 풀이를 할 수 있다.
def solution(sizes):
    return max(min(size) for size in sizes) * max(max(size) for size in sizes)

kotlin

  1. IntArray 의 최솟값은 minOf { } 로 구할 수 있다.
// asis: 오름차순 정렬 후 첫 번째 값
size.sort()
size[0]

// tobe
size.minOf { it }
profile
안녕하세요 :)

0개의 댓글