Programmers/Lv. 1

[Kotlin] Programmers Lv. 1 최소직사각형

chattymin 2023. 9. 24. 12:05
728x90
반응형

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

 

프로그래머스

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

programmers.co.kr

Code


import java.lang.Integer.max

class Solution {
    fun solution(sizes: Array<IntArray>): Int {
        var maxNum = Int.MIN_VALUE
        var minNum = Int.MIN_VALUE
        
        sizes.forEach {
            var maxLocal: Int
            var minLocal: Int
            if (it.first() > it.last()){
                maxLocal = it.first()
                minLocal = it.last()
            }else {
                maxLocal = it.last()
                minLocal = it.first()
            }
            
            maxNum = max(maxNum, maxLocal)
            minNum = max(minNum, minLocal)
        }

        return maxNum * minNum
    }
}

처음 봤을땐 사실 어떻게 해결해야 할 지 막막했다. 

그런데 생각을 해보니, 가로 세로 상관없이 더 큰 값들끼리 모으고, 더 작은 값들끼리 모으면 그게 회전을 적용한 값과 같지 않나 라는생각을 했다.

 

그래서 두 변중 큰 변들끼리 모으고, 작은것들끼리 모아서 최댓값끼리 곱해줬다

 

728x90
반응형