카테고리 없음
프로그래머스 > 카페
단점이없어지고싶은개발자
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;
}
반응형