갈색 격자수 brown 과 노란색 격자수 yellow가 주어질 떄 저 둘을 이용하여 가능한 카펫의 크기를 찾아내야 한다, 갈색 격자가 테두리를 이루고, 중앙에는 노락색 격자가 채워져있는 상황으로 가로 세로 크기를 순서대로 배열에 담아 리턴
나의 풀이
function solution(brown, yellow) {
var total = brown + yellow;
for(let i = 1; i < total; i++) {
if(total % i === 0) {
const width = total / i;
const height = i;
if ((width - 2) * (height - 2) === yellow) {
return [width, height];
}
}
}
}
total 변수에 갈색과 노란색 격자의 수를 합한 값을 저장한다
for (1부터 total까지 반복)
조건문 : total % i === 0 (i가 total의 약수일 때만 작동)
크기 계산 width와 height로 가로 세로의 크기를 계산한다
주어진 노란색 격자의 수와 일치하는지 확인
참일결우 [width, height] 반환하고 종료
다른 풀이
function solution(brown, yellow) {
var answer = [];
for (var i = 3; i <= (brown+yellow)/i; i++) {
var x = Math.floor((brown+yellow)/i);
if( (x-2)*(i-2)=== yellow) {
break;
}
}
return [x,i];
}
for
갈색 격자 테두리가 최소 1줄 이상이어야 하며 가로 세로 최소 길이가 3이어야함
i를 3부터 시작하여 검사
갈색과 노란색 격자의 총합을 i로 나눈 값이 가능한 가로 길이의 최대값으로 i를 증가시키며 루프