코린이의 소소한 공부노트

[LeetCode/Easy] 492. Construct the Rectangle 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 492. Construct the Rectangle

무지맘 2023. 2. 26. 23:29

1. Input

1) int area

 

2. Output

1) 넓이가 area인 직사각형을 만드는 [세로, 가로] int배열 중 다음 조건을 만족하는 것을 반환

- 세로 >= 가로

- 세로와 가로의 차는 가능한 작아야 한다.

 

3. Constraint

1) 1 <= area <= 10^7

 

4. Example

Input: area = 4 -> Output: [2,2]

Input: area = 37 -> Output: [37,1]

 

5. Code

1) 첫 코드(2023/02/26)

int[] answer = {area, 1};
for(int i=area-1 ; i>=(int)Math.sqrt(area) ; i--){
    if(area%i==0){
        if(Math.abs(answer[0]-answer[1]) > Math.abs(i-(area/i))){
            answer[0] = i; answer[1] = area/i;
        }
    }
}
return answer;

- 다른 방법은 없을까..