728x90
https://school.programmers.co.kr/learn/courses/30/lessons/86491
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