[프로그래머스]카펫

allnight5·2023년 4월 12일
0

프로그래머스

목록 보기
61/73

링크

자바 첫번째

class Solution {
    public int[] solution(int brown, int yellow) { 
        int sum = brown+yellow; 
        for(int i=2; i<=sum/2; i++){
            if(sum%i ==0){
                int div = sum/i;
                if((i-2)*(div-2) == yellow) {
                    return new int[]{div, i};
                }
            }
        }
        return null;
    } 
}

자바 두번째

class Solution {
    public int[] solution(int brown, int yellow) { 
        int sum = brown+yellow; 
        for(int i=2; i<=sum/2; i++){ 
            if((i-2)*((sum/i)-2) == yellow) {
                return new int[]{sum/i, i};
            } 
        }
        return null;
    } 
}

노란색 타일의 개수는 m*n, 갈색 타일의 개수는 2(m+n+2)

이차방정식을 풀면

a=(brown/2 -2 +Math.sqrt((brown/2 -2)2 -4*yellow)) /2
b=yellow/m

자바 이차원 방정식

class Solution {
    public int[] solution(int brown, int yellow) { 
        int a = (brown+4)/2;
        int b = brown+yellow;
        int[] answer = {(int)(a+Math.sqrt(a*a-4*b))/2,(int)(a-Math.sqrt(a*a-4*b))/2};
        return answer;
    } 
}
profile
공부기록하기

0개의 댓글