코린이의 소소한 공부노트

[LeetCode/Easy] 1725. Number Of Rectangles That Can Form The Largest Square 본문

코딩테스트 풀이/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;