[프로그래머스] 알고리즘 Kit - 카펫

ss_kim·2024년 12월 3일

<코드>

function solution(brown, yellow) {
    var answer = [];
    
    const oneSide = brown / 2;
    
    for (let i = 1; i < oneSide; i++) {
        const width = oneSide - i
        const height = i
        
        if(width < height) break;
        
        if((width - 2) * height === yellow) return answer = [width, height + 2]
    }
    
    return answer;
}



<풀이>

brown을 2로 나누면 가로와 위, 아래를 뺀 세로의 합이 되고, 이 때 세로는 yellow의 높이가 된다.

yellow의 높이는 최소 1이기 때문에 1부터 brown / 2까지가 되고, 높이가 가로 길이를 넘어설 수 없는 반복문을 돌면서,

가로에서 양 너비 2를 뺀 값(width - 2)과 세로(height)의 곱이 yellow의 갯수와 같으면 값을 반환한다.

profile
프론트엔드 개발자

0개의 댓글