PROGRAMMERS/완전탐색

[프로그래머스] [JAVA] [Level 2] [완전탐색] 카펫

c0mmedes 2022. 9. 17. 14:30



class Solution {
    public int[] solution(int brown, int yellow) {
        int[] answer = new int[2];
        
        // 구할 넓이 구하기
        int sum = brown + yellow;
        
        // 가로를 기준으로 3부터 (제일 작은 사이즈(8, 1) 일때 가로는 3이므로)
        for(int i=3; i<sum; i++){
            //  세로 길이 구하기
            int j = sum/i;
            
            // 나누어 떨어져야 약수이고, 가로 길이 >= 세로 길이 
            if(sum%i==0 && i>=j){
                int garo = i;
                int sero = j;
                
                // (가로길이-2) * (세로길이 -2) = yellow 크기
                int center = (garo-2) * (sero-2);
                
                if(center == yellow){
                    answer[0] = garo;
                    answer[1] = sero;
                    return answer;
                }
            }
        }
   
        return answer;
    }
}