위와 같이 명함들이 있고 명함의 가로와 세로의 길이가 주어집니다. 모든 명함들을 수납하기 위한 지갑을 만드려고 할 때, 지갑의 가로와 세로의 길이의 최솟값을 곱하여 리턴하십시오.
2. 제한사항
● sizes의 길이는 1 이상 10,000 이하입니다. ○ sizes의 원소는 [w, h] 형식입니다. ○ w는 명함의 가로 길이를 나타냅니다. ○ h는 명함의 세로 길이를 나타냅니다. ○ w와 h는 1 이상 1,000 이하인 자연수입니다.
3. 입출력 예시
sizes
return
[[60, 50], [30, 70], [60, 30], [80, 40]]
4000
[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]]
120
[[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]]
133
4. 나의 풀이
public int solution(int[,] sizes)
{
int answer = 0;
int maxWidth = 0;
int maxHeight = 0;
for (int i = 0; i < sizes.GetLength(0); i++)
{
// 현재 사이즈의 가로,세로길이를 비교해서,
// 더 큰 값을 maxWidth와 비교한 후 더 크면 갱신.
maxWidth = Math.Max(maxWidth, Math.Max(sizes[i, 0], sizes[i, 1]));
// 현재 사이즈의 가로,세로길이를 비교해서,
// 더 작은 값을 maxHeight와 비교한 후 더 작으면 갱신.
maxHeight = Math.Max(maxHeight, Math.Min(sizes[i, 0], sizes[i, 1]));
}
return answer = maxWidth * maxHeight;
}