본문 바로가기
Algorithm/문제풀이

[Codility] MinPerimeterRectangle (Easy) by javascript - AVAILABLE LESSONS 10

by 썸머워즈 2022. 4. 20.
반응형

▷ 문제 : AVAILABLE LESSONS 10 - MinPerimeterRectangle (Easy)

 

MinPerimeterRectangle coding task - Learn to Code - Codility

Find the minimal perimeter of any rectangle whose area equals N.

app.codility.com

▷ 해결 날짜 : 2022.04.20
▷ 소요 시간 : 10분
▷ 풀이 과정 :

면적이 매개변수로 주어지면 면적이 N인 직사각형의 최소 둘레를 찾는 문제이다.

예제를 보면 직사각형의 각 변은 약수의 집합으로 볼 수 있어서 이전 문제와 동일하되 수정만 조금 해주면 된다.

 

▷ 구현

function solution(N) {
    return getDivisors(N);
}

const getDivisors = (num) => {
    let min = (1 + num) * 2;
    for(let i = 2 ; i <= Math.sqrt(num) ; i++){
        if(num % i === 0){
            let rectangle = (i + (num / i)) * 2;
            if(min > rectangle) min = rectangle;
        }
    }
    return min;
}


▷ 복기 :

일단 아직까지는 저 약수 알고리즘 기본형태를 따르면 다 풀긴 풀어진다.

반응형


댓글

TOP