카테고리 없음

프로그래머스 > 카페

단점이없어지고싶은개발자 2022. 10. 23. 14:31
반응형

1. 처음 이 공식 외에 다른 공식을 통해서 진행했을 때, 앞에는 틀리고 뒤에는 틀리다고 결과가 나왔다.

2. widthHeightPair과 같은 공식으로 접근했지만, (pair[0] + pair[1]) * 2 - 4와 같이 brown에 접근하는 공식은 몰랐다.

3. 해당 문제는 알고리즘 + 수학적인 공식을 알아야 접근이 가능했던 문제가 아닐까 생각된다.

function solution(brown, yellow) {
    const size = brown + yellow;
    const answer = widthHeightPair(size).filter(pair => (pair[0] + pair[1]) * 2 - 4 === brown)[0];
    //경우의 수를 filter메소드를 이용해서 brown과 같을 때 그 값을 반환시킬 수 있도록 했다.
    return answer;
}

function widthHeightPair(size){
    const result = [];
    for (let i = 1; i <= Math.sqrt(size); i++) {
	//Math.sqrt제곱근을 반환시킨다.
        if (size % i === 0) {
        //이렇게 해줘야 size를 만들 수 있는 경우의 수들을 구할 수 있다.
            result.push([size/i, i]);
        }
    }

    return result;
}

 

 

반응형