코딩테스트 풀이/JAVA
[LeetCode/Easy] 1725. Number Of Rectangles That Can Form The Largest Square
무지맘
2023. 1. 2. 23:39
1. Input
1) 직사각형의 세로, 가로가 차례로 담긴 2차원 배열 rectangles
2. Output
1) 각 직사각형을 제일 큰 정사각형으로 잘랐을 때 한 변의 길이를 x라고 하면, 한 변의 길이가 x인 정사각형을 만들 수 있는 직사각형의 개수를 반환
3. Constraint
1) 1 <= rectangles.length <= 1000
2) rectangles[i].length == 2
3) 1 <= 세로, 가로 <= 109
4) 세로 != 가로
4. Example
Input: rectangles = [[5,8],[3,9],[5,12],[16,5]] -> Output: 3
설명:
- 각각의 직사각형을 가장 큰 정사각형으로 잘랐을 때 한 변의 길이는 [5, 3, 5, 5]이므로 x==5이고, 한 변의 길이가 5인 정사각형을 만들 수 있는 직사각형은 3개가 있으므로 3을 반환한다.
5. Code
1) 첫 코드(2022/06/14)
import java.util.*;
if(rectangles.length == 1)
return 1;
int[] lens = new int[rectangles.length];
for(int i=0 ; i<rectangles.length ; i++)
lens[i] = Math.min(rectangles[i][0], rectangles[i][1]);
Arrays.sort(lens);
int count = 1;
int maxLen = lens[lens.length-1];
for(int i=lens.length-2 ; i>=1 ; i--){
if(lens[i] == maxLen) count++;
else break;
}
return count;