Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다.Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.
Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.
문제의 유형대로 완전탐색으로 접근하였습니다. 테두리는 무조건 brown으로 정해져야하고 무조건 사각형의 형태를 띄워야함으로 x, y는 2부터 시작하였습니다. 그리고 테두리가 되는 조건을 보면 2x + 2(y-2)가 brown을 만족 할 때 테두리를 가득 채울 수 있습니다. 공식을 찾는 접근 방식
테두리 개수 구하는 방법은 위 그림과 같습니다. 2x를 하게되면 y-2의 오른쪽, 왼쪽 갯수가 남는것을 확인할 수 있습니다. 해당 식을 만족하면 최소한 "테두리"는 만족을 한다는 것을 알 수 있습니다. 이제 내부를 yellow로 가득 채워야합니다. 이는 (x-2) * (y-2) 가 yellow와 같을 때 만족함으로 해당 식 두개를 한번에 만족하면 답이 되는 것을 확인할 수 있습니다.
4. 풀이 방법
x와 y는 2부터 진행한다.
문제의 조건에 따라 y > x가 되면 탈출한다.
brown이 2 * x + 2 * (y-2) 를 만족하면서 (x-2) * (y-2) == yellow를 만족하면 그대로 리턴한다.