본문 바로가기
Algorithm

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

by KJ_Hyeon_ 2023. 12. 5.

최소 직사각형 문제
입출력 예시


문제 생각해보기

  • 직사각형의 가로 세로라는 틀에 굳이 갇혀있을 필요없이 숫자 쌍으로 판별할 수 없나?
  • 각 명함의 긴쪽과 짧은쪽을 구분지어서 배열에 저장
  • 두개의 배열의 최댓값을 곱하면 될거같은데..?

풀이 코드

class Solution {
    fun solution(sizes: Array<IntArray>): Int {
        var answer: Int = 0
        var max = ArrayList<Int>()
        var min = ArrayList<Int>()
        for (i in sizes) {
            if(i[0] <= i[1]) {
                max.add(i[1])
                min.add(i[0])
            } else {
                max.add(i[0])
                min.add(i[1])
            }
        }
        answer = max.maxOf{it} * min.maxOf{it}
        return answer
    }
}

!! max배열의 max()를 프로그래머스에서 사용이 되지가 않아서 maxOf{}함수를 통해서 각 배열의 최댓값을 구했다.