[LeetCode] Construct the Rectangle

아르당·2026년 1월 19일

LeetCode

목록 보기
100/134
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

웹 개발자는 웹 페이지의 크기를 설계하는 방법을 알아야 한다. 주어진 직사각형 웹 페이지의 면적을 고려하여, 다음 조건을 만족하는 길이 L과 너비 W의 직사각형 웹 페이지를 설계해야 한다.

  1. 설계한 직사각형 웹 페이지의 면적은 주어진 목표 면적과 같아야한다.
  2. 너비는 W는 길이 L보다 커서는 안된다. 즉, L >= W이다.
  3. 길이 L과 너비 W의 차이는 가능한 한 작아야 한다.

설계한 웹 페이지의 길이와 너비를 순서대로 배열 [L, W]로 반환해라.

Example

#1
Input: area = 4
Output: [2, 2]
Explanation: 목표 영역은 4이고, 이를 구성하는 가능한 방법은 [1, 4], [2, 2], [4, 1]이다. 하지만 2번 항목 때문에 [1, 4]는 포함되지 않고, 3번 항목 때문에 [4, 1]은 [2, 2]보다 최적이 아니다. 따라서 길이 L은 2이고, 너비 W는 2이다.

#2
Input: area = 37
Output: [37, 1]

#3
Input: area = 122122
Output: [427, 286]

Constraints

  • 1 <= area <= 10^7

Solved

class Solution {
    public int[] constructRectangle(int area) {
        int width = (int) Math.sqrt(area);

        while(area % width != 0){
            width--;
        }

        int length = area / width;

        return new int[]{length, width};
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글