티스토리 뷰
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};
}
}
'프로그래머스 (Programmers)' 카테고리의 다른 글
[프로그래머스 (Java)] 네트워크 (0) | 2022.01.02 |
---|---|
[프로그래머스 (Java)] 타겟넘버 (0) | 2022.01.02 |
[프로그래머스 (Java)] 소수찾기 (0) | 2022.01.02 |
[프로그래머스 (Java)] 모의고사 (0) | 2022.01.02 |
[프로그래머스 (java)] 단속카메라 (0) | 2021.12.30 |
댓글