프로그래머스: 카펫

공룡개발자·2022년 4월 15일
0

✍ 나의 풀이

function solution(brown, yellow) {
    var answer = [];
    let sum = brown + yellow;
   	
    for(let height=3; height <= brown; height++){
        if(sum % height === 0){
            let width = sum / height;
            if((width-2) * (height-2)  === yellow){
                return [width, height]
            }
        }
    }
    return answer;
}
  • for문 조건: 높이값은 최소 3이상이라는 점과 주어진 brown개수를 넘어설 수 없다는 점을 고려!
    (높이의 최대값이 brown이 될 수는 없지만,,)
  • 임의의 높이값으로 sum을 나눴을 때 나머지가 0. 즉, 사각형을 구성할 수 있는지 판별!
  • yellow의 너비는 항상 테두리 2를 뺀 값이고, yellow의 높이 역시 테두리 2를 뺀 값임을 고려해 yellow의 개수를 유추해내고, 주어진 yellow의 값과 비교해 정답을 찾아낸다.
profile
공룡의 발자취

0개의 댓글