👀 문제
https://school.programmers.co.kr/learn/courses/30/lessons/86491?language=kotlin
👊 도전
1. 설계
- 문제 조건에 맞게 진행
2. 구현
1
2
3
4
5
6
7
8
class Solution {
fun solution(sizes: Array<IntArray>): Int {
sizes.forEach { size ->
size.sortDescending()
}
return sizes.maxOf { it[0] } * sizes.maxOf { it[1] }
}
}
3. 결과
🤟 성공 🤟
4. 설명
- sizes[i][0], sizes[i][1]은 가로, 세로가 정해져 있지 않다
- 문제 설명에서는 가로, 세로 길이를 지정했지만 명함을 어떻게 놓느냐에 따라 가로, 세로 값이 달라진다.
- 가로를 큰 변으로 한다고 가정하고 size를 정렬한다. (sizes[i][0]을 가로라고 가정한다)
- 가로가 결정되면 세로도 자동으로 결정된다.
- 모든 변을 충족시키기 위해 max값을 선택한다
- sizes[i][0], sizes[i][1]의 최대값을 찾고 두 값을 곱한 값(넓이)가 모든 명함을 만족할 수 있는 지갑의 크기가 된다.