본문 바로가기
2023년 이전/Codility

Lesson 10 - MinPerimeterRectangle

by JeongUPark 2020. 1. 27.
반응형

자세한 문제는 여기서 확인하시면 됩니다.

 

N의 약수 A와  A*B=N해서 그 수를 만드는 B를 사용하여 2*(A+B)시 제일 작은 수를 구하는 문제

ex) N=30 이면 (1,30) = 62, (2,15) = 34, (3,10) = 26, (5,6) = 22 이렇게 나타나므로 22가 제일 작은 값이된다.

 

code

class Solution {
    public int solution(int N) {
        // write your code in Java SE 8
        int k = (int)Math.sqrt(N);
        int result = Integer.MAX_VALUE;
        for(int i = 1; i <=k ; i++){
            if(N%i == 0){
                int a = i;
                int b = (int)(N/a);
                int c = 2*(a+b);
                if(result > c){
                    result = c;
                }
            }
        }
        return result;
    }
}

간단한 문제다 제곱근까지만 확인하여 제일 작은 값을 찾으면 된다.

Math.sqrt가 제곱근을 구하는 code이다.

반응형

'2023년 이전 > Codility' 카테고리의 다른 글

Lesson7 StoneWall  (0) 2020.06.07
Lesson 6 - NumberOfDicIntersection  (0) 2020.01.20
Lesson7 - fish  (0) 2020.01.20
Lesson 7 - Nesting  (0) 2020.01.07
Lesson10 - Peaks  (0) 2020.01.06