티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/42842?language=java 

 

코딩테스트 연습 - 카펫

Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과

programmers.co.kr

 

완전탐색 문제로 나와있지만, 노란색 타일의 가로 세로 값을 x y 로 정하고 연립방정식을 작성하면 풀 수 있습니다.

연립방정식을 풀다보면 x, y 에 대해 2차 방정식이 주어지는데 근의 공식을 이용하면 쉽게 해를 구할 수 있습니다.

class Solution {
    public int[] solution(int brown, int yellow) {
        float tmp = brown / (float) 2 - 2;
        int y = (int) ((tmp + Math.sqrt(Math.pow(tmp, 2) - 4 * yellow)) / 2);
        int x = yellow / y;
        return x >= y ? new int[]{x + 2, y + 2} : new int[]{y + 2, x + 2};
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함