[프로그래머스] 카펫

Joo Yeong Park·2020년 10월 21일
1

algorithm

목록 보기
4/7

카펫문제

구현자체는 어렵지 않고, 규칙을 발견하면 쉽다.

input으로 주어지는 것은 노란색 사각형의 총 개수(yellow)와 갈색 사각형의 총 개수(brown)이다.

제한사항으로 카펫의 크기는 가로>=세로라는 조건이 있기 때문에 규칙을 생각해보면 아래 그림과 같다.

이걸 구현해주면

class Solution {
    public int[] solution(int brown, int yellow) {        
        int[] answer = new int[2];
        for(int y = 1; y<= yellow; y++){
            int x = yellow/y;
            if(x<y) break;
            if(check(x, y, brown)){
                answer[0] = x+2;
                answer[1] = y+2;
            }
        }
        return answer;
    }
    
    public boolean check(int x, int y, int brown){
        return (brown == 2*x+2*y+4);
    }
}

이렇게 된다.

profile
웹 개발자를 꿈꾸는 삐약

0개의 댓글