문제조건:
카페는 가로 > 세로
중간에 노란색 바닥이 있고 노란색 바닥을 갈색 바닥을 1줄로 감싸는 형태.
해결 방법:
노란색 바닥의 개수는 가로(a) => 세로(b) 가정 하에 a*b개이고
갈색의 개수는 2a + 2b + 4이다. 따라서 이 공식을 이용하면 문제를 풀 수 있다.
완전 탐색이 쓰인 부분은 a*b의 약수를 구하는 부분이다.
완전 탐색 주말엔 꼭 정리해야겠다!!
function solution(brown, yellow) {
let answer = new Array(2);
for (let i = 1; i <= Math.sqrt(yellow) ; i++)
{
if( yellow % i === 0)
{
let a = yellow/i; // b보다 크거나 같음
let b = i;
if ( a + b === brown/2 - 2)
{
answer[0] = a+2;
answer[1] = b+2;
return answer;
}
}
}
return answer;
}
'ps' 카테고리의 다른 글
동적계획법, dynamic programming 기본 (0) | 2020.12.31 |
---|---|
[DFS/BFS] 타겟 넘버 (0) | 2020.11.26 |
[완전 탐색] 소수 찾기 (0) | 2020.11.18 |
[완전탐색] 모의고사 (0) | 2020.11.18 |
[정렬] 가장 큰 수, H-Index (0) | 2020.11.17 |