코린이의 소소한 공부노트

[프로그래머스/Lv.2] 카펫 본문

코딩테스트 풀이/JAVA

[프로그래머스/Lv.2] 카펫

무지맘 2022. 11. 29. 11:45

1. Input

1) 카펫의 갈색 격자의 수 brown

2) 카펫의 노란색 격자의 수 yellow

3) 카펫은 테두리 1줄은 갈색이고, 안쪽은 노란색으로 칠해져 있다.

 

2. Output

1) 카펫의 가로, 세로 크기를 순서대로 담은 int 배열

 

3. Constraint

1) 갈색 격자의 수 brown8 이상 5,000 이하인 자연수

2) 노란색 격자의 수 yellow1 이상 2,000,000 이하인 자연수

3) 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 길다.

 

4. Example

Input: brown=24, yellow=24 -> Output: {8,6}

설명: 안쪽에 노란색 격자가 24개가 있고, 노란색을 둘러싼 테두리 1줄의 갈색 격자가 24개라면 가로 8, 세로 6의 크기를 가진 카펫이다.

 

5. Code

1) 첫 코드(2022/11/29)

int[] answer = new int[2]; // 가로 >= 세로
int total = brown+yellow;
for(int i=total; i>=Math.sqrt(total) ; i--){
    if(total%i==0){
        answer[0]=i; answer[1]=total/i;
        if((answer[0]-2)*(answer[1]-2)==yellow) break;
    } // if
} // for i
return answer;