[Programmers] 카펫 - JavaScript

Joosi_Cool·2023년 2월 9일
0

Programmers

목록 보기
11/98
post-thumbnail
post-custom-banner

문제설명



설계 과정

1) 총 면적 = brown 개수 + yellow 개수
2) 총 면적의 약수 쌍에서 각각을 -2를 하고 곱했을때, yellow와 같다면 답.



풀이 코드

function solution(brown, yellow) {
    var answer = [];
    var totalArea = brown + yellow;
    
    for(var i =3;i<=Math.sqrt(brown+yellow);i++){
        if(totalArea%i===0){
            if((i-2)*(totalArea/i-2) === yellow){
                answer[0] = i>totalArea/i? i : totalArea/i;
                answer[1] = i<totalArea/i? i : totalArea/i;
            }
        }
    }
    
    
    return answer;
}


결과

이번 문제는 비교적 간단하고 빠른 시간이 풀어냈다. 본인이 생각했을때 핵심은 총 면적의 약수 쌍에서 각각을 -2를 하고 곱했을때, yellow와 같다면 답. 이것과 같이 문제를 쉽게 풀어낼 수 있는 방법을 빠르고 정확하게 구상하는 것에 있다고 생각한다. 이를 위해서는 테스트 케이스 몇개 정도를 대입하여 계산하면서 규칙을 눈치채는 것이 중요하다고 생각한다.

profile
집돌이 FE개발자의 노트
post-custom-banner

0개의 댓글