출처: leetcode.com/problems/number-of-rectangles-that-can-form-the-largest-square/
문제
한글 번역은 아래 더보기를 클릭해주세요.
더보기
사각형들의 배열이 주어지는 데, 여기서 rectangles[i] = [li, wi]는 길이가 li이고 너비가 wi인 i번째 사각형을 의미한다.
i번째 사각형을 잘라서 한 변의 길이가 k인 정사각형을 만들 수 있다. 이 때 k는 k <= li와 k <= wi를 모두 만족한다. 예를 들어, 사각형 [4, 6]을 잘라 한 변의 길이가 최대 4인 정사각형을 만들 수 있다.
maxLen을 주어진 사각형으로부터 얻을 수 있는 가장 큰 정사각형의 한 변의 길이라고 하자.
maxLen과 같은 길이의 정사각형을 만들 수 있는 사각형의 갯수를 반환하라.
예제 1:
- 입력: rectangles = [[5,8],[3,9],[5,12],[16,5]]
- 출력:3
- 설명: 각각의 사각형으로부터 얻을 수 있는 가장 큰 정사각형은 길이 [5,3,5,5]를 가진 정사각형이다. 이 중에서 가장 큰 정사각형은 길이 5인 정사각형이다. 그리고 길이 5인 정사각형을 총 3개의 사각형으로부터 얻을 수 있다.
예제 2:
- 입력: rectangles = [[2,3],[3,7],[4,3],[3,7]]
- 출력: 3
제약조건:
- 1 <= rectangles.length <= 1000
- rectangles[i].length == 2
- 1 <= li, wi <= 109
- li != wi
풀이
javascript
const countGoodRectangles = function (rectangles) {
let maxLen = 0;
let maxLenCnt = 0;
rectangles.forEach((rect) => {
const len = Math.min(rect[0], rect[1]);
if (len > maxLen) {
maxLen = len;
maxLenCnt = 1;
} else if (len === maxLen) {
maxLenCnt += 1;
}
});
return maxLenCnt;
};
python
class Solution:
def countGoodRectangles(self, rectangles: List[List[int]]) -> int:
maxLen = 0;
maxLenCnt = 0;
for rect in rectangles:
len = min(rect[0], rect[1])
if len > maxLen:
maxLen = len
maxLenCnt = 1
elif len == maxLen:
maxLenCnt += 1
return maxLenCnt;
결과
'CS기초 > 코딩테스트' 카테고리의 다른 글
LeetCode 392 (Easy) Is Subsequence (0) | 2021.03.03 |
---|---|
LeetCode 1710 (Easy) Maximum Units on a Truck (0) | 2021.03.03 |
LeetCode 122 (Easy) Best Time to Buy and Sell Stock II (0) | 2021.03.03 |
LeetCode 1217 (Easy) Minimum Cost to Move Chips to The Same Position (0) | 2021.02.24 |
LeetCode 1221 (Easy) Split a String in Balanced Strings (0) | 2021.02.24 |